2012-03-27 2 views
0

Ich habe gelesen und gelesen und gelesen .. Ich versuche, einen Feed zu ziehen, ich habe immer letzte Antwort gefolgt kann ich googlen. Ich verstehe nicht, was die Probleme hier sind, denn Firebug ist in Ordnung, den verdammten JSON zu finden und zu analysieren.jsonp, nur nicht funktioniert .. immer Fehler

versuchen so ein

var url='http://images.wsu.edu/javascripts/tracking/configs/pick.asp'; 
$.getJSON(url+'?callback=?', function(data){ 
    alert('true'); 
    $.jtrack({ 
     load_analytics:{account:GAcode}, 
     trackevents:data // this can be hard codded here or set do be feed in like so 
     }); 
}); 

FAIL noch ich es sehe in WTF?

so

var url='http://images.wsu.edu/javascripts/tracking/configs/pick.asp'; 
$.ajax({ 
    url: url, 
    cache: false, 
    dataType: 'jsonp', 
    jsonp : "callback", 
    success: function(data){ 
    alert('data'); 
    //data=jQuery.parseJSON(data); 
    $.jtrack({ 
     load_analytics:{account:GAcode}, 
     trackevents:data // this can be hard codded here or set do be feed in like so 
    }); 
    }, 
    error: function(e, xhr){ 
    alert('error'); 
    alert(e); 
    } 
}); 

Und wieder FAIL .. so .. äh denken Fehler mir noch sagen würde .. nichts .. so .. lasst uns real sein und die Ausgabe testen, es ist selbst sicher, dass es die URL findet und ich jsop anrufe und und und .. gut, lasst uns die Ausgabe bestätigen, denn das ist das Problem.

enter image description here

Also .. gut ich weiß nicht .. Ich habe jeden darn Thread hier aus Bangkok getroffen. Man weiß, was das Geschäft ist?

+5

Nun, Sie behandeln es war JSONP , aber die Screenshots und URL zeigen es als JSON, es wird kein Callback gesetzt. – epascarello

+0

Ihr Link ist nur Json, haben Sie API-Dokumentation?Sie müssen einen Rückruf festlegen, dh: http://web.onassar.com/blog/2009/07/25/jsonp-vs-json-amazing-for-apis/ – JKirchartz

+0

, so wickelte ich die Ausgabe der URL in callback() und keine Änderung am $ .getJSON (URL + '? Callback =?', Funktion (Daten) {}); –

Antwort

1

Kasse diesen Link: JSON Example using Callback

ich denke, die JSON Bedürfnisse zurück den Rückruf in der zurückgegebenen JSON setzen. In dem obigen Beispiel ist es an der Front wie platziert:

CALLBACKVALUE([{"id":"4","name":"FICTION","parentid":"3","getfullname":"BOOKS > FICTION"},{"id":"5","name":"NON-FICTION","parentid":"3","getfullname":"BOOKS > NON-FICTION"}) 
+0

Ok .. tat dies .. und scheint es zurückzuziehen, aber $ .getJSON (URL + '? Rückruf =?', Funktion (Daten) {Alarm ('wahr');}); alarmiert immer noch nicht? –

+0

ok .. das ist richtig .. typo in test .. danke .. -J –

0

ich glaube, das Problem ist, dass Sie nicht die Rückkehr JSONP Inhalts - nur JSON. Sie müssen den Parameter callback dem Anfang des JSON voranstellen, den Sie gerade bedienen, und ihn außerdem in runde Klammern setzen. z.B. Sie kehren zurück zur Zeit:

[{ 
    "element":"#null", 
    "options":{} 
}, 
    ... 
] 

und Sie müssen zurückkehren werden:

value_of_callback_param([{ 
    "element":"#null", 
    "options":{} 
    }, 
    ... 
]); 

Die Hinter ; ist optional. Siehe this link, die beschreibt, wie es funktionieren soll.

Darüber hinaus denke ich application/javascript sollte für den Inhaltstyp statt application/json verwendet werden, da Sie gültige JavaScript anstelle nur eines JSON-Objekts/Array zurückgeben werden. Die jQuery docs for the $.ajax function gibt außerdem an, dass der error-Rückruf für JSONP-Anforderungen nicht aufgerufen werden sollte.

+0

ja danfolkes wies darauf hin ich fehlte der rufbackwert als wrapper .. danke für immer wieder .. prost - –

0

einfach machen pick.asp den Wert der callback URL-Parameter erhalten (<some string> von nun an genannt), die von jquery und geschickt wie diese pick.asp?callback=<some string> an den Server generiert wird. Dann diesen Wert verwenden, um Ihre Antwort wie diese zu bauen:

<some string>(<your json>); 
0

diese Warnungen "#NULL"

var url = 'http://images.wsu.edu/javascripts/tracking/configs/pick.asp'; 
$.getJSON(url + '?callback=?', function(data) { 
    alert(data[0].element); 
}); 

hier ist das, was kommt zurück:

callback([ 
    { 
     "element":"#null", 
     "options":{} 
    },{ 
     "element":"a#hover", 
     "options":{ 
      "category":"hover", 
      "label":"function(ele){ return (($(ele).attr('title')!='' && typeof($(ele).attr('title')) !=='undefined') ? $(ele).attr('title') : $(ele).attr('href')) }" 
     } 
    },{ 
     "element":"a[href$='.jpg'],a[href$='.gif'],a[href$='.png'],a[href$='.ppt'],a[href$='.pdf'],a[href$='.doc'],a[href$='.docx']", 
     "options":{ 
      "category":"download", 
      "label":"function(ele){ return (($(ele).attr('title')!='' && typeof($(ele).attr('title')) !=='undefined') ? $(ele).attr('title') : $(ele).attr('href')) }" 
      } 
    },{ 
     "element":"a:not([href*='mailto('])", 
     "options":{ 
      "category":"email" 
      } 
    },{ 
     "element":"a:not([href*='wsu.edu'])", 
     "options":{ 
      "category":"outbound" 
      } 
    },{ 
     "element":"a[href*='wsu.edu']", 
     "options":{ 
       "category":"internal", 
       "noninteraction":"true" 
      } 
    } 
]) 
+0

ja danfolkes wies darauf hin ich fehlte der Callback-Wert als Wrapper .. du hättest es gerade verpasst .. danke für's Zurückkommen .. Prost - –