2016-05-28 15 views
0

Ich versuche, JSON-Daten mit Jquery zu lesen. Speziell versuche ich den JSON von dieser URL zu lesen: http://mkweb.bcgsc.ca/color-summarizer/?url=http://scontent-a.cdninstagram.com/hphotos-xfa1/t51.2885-15/10643840_701797013239098_657737630_a.jpg&precision=low&num_clusters=3&json=1&callback=?
Jedoch habe ich diesen Fehler erhalte: Uncaught SyntaxError: Unexpected token :
Hier ist meine Jquery:
Lesen von JSON-Daten mit jquery. Uncaught SyntaxError: Unerwartetes Token:

$(document).ready(function() { 

     var one = "1" 

     $.getJSON('http://mkweb.bcgsc.ca/color-summarizer/?url=http://scontent-a.cdninstagram.com/hphotos-xfa1/t51.2885-15/10643840_701797013239098_657737630_a.jpg&precision=low&num_clusters=3&json=1&callback=?', function(result) { 

      document.write(result.clusters.one.rgb[0]); 

     }); 
    }); 

Ich erhalte den Fehler bei der ersten Doppelpunkt in dem Code JSON.
Von dem, was ich verstehe, werden die JSON-Daten tatsächlich als Javascript gelesen. Wie kann ich das beheben?

+0

Die URL unterstützt JSONP nicht oder zumindest unterstützt keine 'Rückruf = xyz' Parameter bereitstellt. – andlrc

+0

Nicht verwandt, aber dein 'var one'-Trick wird nicht funktionieren. Du brauchst 'result.clusters [one] .rgb [0]' oder 'result.clusters ['1']. Rgb [0]' – JAAulde

+0

Ich habe den Callback =? Parameter, wie ich zuvor diesen Fehler erhielt "Nein" Access-Control-Allow-Origin "Header ist auf der angeforderten Ressource vorhanden." – zacbacon11

Antwort

0

Lesen der API Docs Ich fand, dass Sie einen jsnop=1 Parameter angeben müssen, um Daten über JSONP abzurufen. so etwas wie diese

Tthe würde richtiger Code sein:

$(document).ready(function() {   
     $.ajax({ 
      url: 'http://mkweb.bcgsc.ca/color-summarizer/', 
      type: 'GET', 
      dataType: 'jsonp', 
      jsonpCallback: 'colorsummary', 
      data:{ 
       url: 'http://scontent-a.cdninstagram.com/hphotos-xfa1/t51.2885-15/10643840_701797013239098_657737630_a.jpg', 
       precision: 'low', 
       num_clusters: '3', 
       jsonp: '1' 
      }, 
      success: function(result){ 
       document.write(result.clusters['1'].rgb[0]); 
      } 
     }); 
    }); 

ich strukturierte auch die Anforderung, so dass Sie Parameter leicht ändern können.

PS: Uhr mit dieser JSON Notation aus (die [ '1'] in Clustern und so)

+0

Nein. Bezug auf die API-Dokumentation, $ .getJSON() ist eine kurze Handle für einen Ajax-Aufruf . Siehe http://api.jquery.com/jquery.getjson/ – SEUH

+0

Ich sprach über die Farbzusammenfassungs-API. Ich habe $ .ajax() nur verwendet, um die Anfrage einfacher zu verwalten. – yuriy636

Verwandte Themen