2010-11-19 12 views
3

Ist es möglich, Daten an JSONP zu senden? Oder müssen alle Daten in der Querystring als GET-Anfrage übergeben werden? beliebiger BeispielcodePOST-Daten zu JSONP

dank

+0

Hallo Abu, JSONP * kann nicht wirklich für Post-Operationen verwendet werden. In größerem Maßstab kann es nicht einmal als zuverlässige Technologie verwendet werden, da es auf Javascript-Emissionen basiert, die von vielen als Sicherheitsbedrohung angesehen werden (einige Hosters lassen Sie keine Webservices hosten, die JSONP verwenden). Nur aus Neugier - warum brauchst du POST - kannst du einen "logischen" Beitrag machen, indem du get mit Parametern aufrufen - sagen wir, ich kann Sachen zum Db hinzufügen und seine Identität zurücklesen, kein Problem. Es ist nicht genau richtig aus der Sicht der REST-Ideologie, aber Sie wissen .. –

Antwort

0

Wenn Sie jQuery verwenden, versuchen

$ .post()

http://api.jquery.com/jQuery.post/

Edit: Detailliertere Lösung hier: How to use getJSON, sending data with post method?

+1

Von dieser Seite: "Aufgrund der Sicherheitseinschränkungen des Browsers unterliegen die meisten" Ajax "-Anforderungen der gleichen Ursprungsrichtlinie; die Anforderung kann Daten aus einer anderen Domäne, Subdomäne oder einem anderen Protokoll nicht erfolgreich abrufen." POSTs funktionieren nicht domänenübergreifend. –

+0

POSTs funktionieren domainübergreifend, wenn der Browser, das Framework, der Server usw. CORS unterstützen. – hippietrail

6

Nein, Sie können keine Daten auf JSONP posten. JSONP muss als Skript-Tag "übergeben" werden, und Skript-Tags können keine POST-Informationen senden.

Hoffe, das hilft.

+0

hmmm haben Sie einen Beispielcode, wie jsonp eingereicht werden muss? –

0

Hier ist ein Beispiel:

$.ajax({ 
     url: ajaxUrl, 
     dataType: 'jsonp', 
     type: 'GET', 
     cache: false, 
     success: sCallbackFunction, 
     error: eCallbackFunction, 
     jsonpCallback: jsonpCallbackFunction, 
     data: dataObject 
    });