alkalmazásával nevű funkciója, mint a visszahívást $ .getJSON a jQuery kielégíteni Facebook kérelem aláírását követeli

szavazat
3

Próbálom elérni a Facebook API Admin.getMetrics módszer segítségével jQuery. Én rendesen alkotó kérésére url a szerver oldalon (annak érdekében, hogy az alkalmazásom titkos titkos). Én majd kiküldi az url át a böngészőt, hogy kérését jQuery.getJSON().

Facebook megköveteli, hogy küldök egy másolatot az összes kérésem params tördeljük a kérelmemet titkos kérelemmel együtt annak érdekében, hogy ellenőrizze az én hitelességét. A probléma az, hogy jQuery akar generálni a nevét a callback függvény maga is annak érdekében, hogy megfeleljen a nevet ad a névtelen függvényt adja át be lehet nevezni, ha az adatok visszatér. Ezért a nevét a funkció nem elérhető, amíg jQuery.getJSON()végrehajtja és Facebook tartja a kérésemet, hogy inauthentic miatt nem egyező aláírás (az aláírás küldök mentén nem tartalmazza a megfelelő visszahívási param, mert ez nem keletkezett, amíg jQuery.getJSON()futott).

Az egyetlen módja, azt hiszem ki ez a probléma az, hogy valahogy adja meg a nevét én függvény jQuery.getJSON()helyett lehetővé teszi, hogy névtelen marad. De nem talál beállítást, és ennek megfelelően a jQuery AP.

A kérdést 15/10/2008 00:21
a forrás felhasználó
Más nyelveken...                            


4 válasz

szavazat
1

Akkor át a jsonp opciót $ .ajaxSetup, amely lehetővé teszi, hogy rögzítse a függvény neve, hogy lesz az úgynevezett, docs a következőképpen módosul:

jsonp karakterlánc
felülbírálása visszahívási funkció nevét egy jsonp kérelmet. Ezt az értéket fogja használni a „visszahívás”, a „visszahívás =?” része a query string az url GET vagy az adatokat egy POST. Tehát {jsonp: 'onJsonPLoad'} vezetne 'onJsonPLoad =?' telt a szerverre.

Lásd itt http://docs.jquery.com/Ajax/jQuery.ajax#options További részletek

Válaszolt 15/10/2008 00:47
a forrás felhasználó

szavazat
0

Ez jobb megoldás egy fix callback:

window.fixed_callback = function(data){
    alert(data.title);
};

$(function() {
    $.getScript("http://api.flickr.com/services/feeds/photos_public.gne?tags=cats&tagmode=any&format=json&jsoncallback=fixed_callback", function(data) {
    alert('done'); } );
});

A probléma ezzel a visszahívás akkor csak kezelni egy ilyen kérés egy időben, mint a funkció globálisan regisztrált. A visszahívási funkció valószínűleg kell alakítani a diszpécser a különböző típusú adatok, hogy ez lehet letölteni, és hívja a megfelelő funkciót.

Válaszolt 15/10/2008 16:26
a forrás felhasználó

szavazat
2

Használata jQuery.getScriptkiderült, hogy közel legyen - de nem egészen - a válasz. Használata getScript kiküszöböli a jQuery kell hozzá a dinamikusan elemzi névtelen függvényt a kérelem params (bár akkor is csinálni, hogy ha megy előre, és adja oda egy névtelen függvényt, mint a fenti kód). Azonban az alapértelmezett jQuery.getScript, mint az összes többi hívást jQuery Ajax könyvtár, hogy csatolja a további kiegészítő érv _=12344567(ahol 1234567 valóban időbélyeg). jQuery teszi ezt, hogy megakadályozzák a böngésző cache-elje a választ. Ez azonban további szüneteket én aláírták a kérés ugyanúgy, mint az automatikus nevű visszahívási függvény.

Némi segítség #jquery, megtudtam, hogy az egyetlen módja annak, hogy jQuery ne szórakozz egyáltalán a params az, hogy a kérelem segítségével a bázis jQuery.Ajaxaz eljárás a következő érvek:

jQuery.ajax({
  url: fbookUrl,
  dataType: "script",
  type: "GET",
  cache: true,
  callback: null,
  data: null
});

(ahol fbookUrla Facebook API url próbálok kérni annak teljes params beleértve az aláírás és a callback=myFunction). Az dataType: "script"arg határozza meg, hogy a kapott jsonp kell töltött egy script tag az oldalon végrehajtásra cache: truemondja jQuery, hogy a böngésző cache a választ, azaz hogy kihagyja a kiegészítéssel, az időbélyeg paramétert.

Válaszolt 15/10/2008 17:12
a forrás felhasználó

szavazat
3

Az egyetlen dolog, hogy nem a munka számomra voltak a következő beállítások

jQuery.ajax({ url: fbookUrl, dataType: "jsonp", type: "GET", cache: true, jsonp: false, jsonpCallback: "MyFunctionName" //insert here your function name });

Válaszolt 18/05/2011 13:30
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more