2010-12-03 4 views
0

Ich versuche, einige Text mit dem http://140it.com/ Service über AJAX zu verkürzen, aber ich bekomme immer eine leere Antwort.140it mit AJAX

Beispiel:

$.ajax({ 
    url: "http://140it.com/api/shrink", 
    data: {text: 'hello'}, 
    success: function(d) { alert(d) }, 
    dataType: 'html', 
    type: 'GET' 
}); 

Wenn ich die URL manuell (wie browsign der Bahn) ausführen ich die Antwort. Fix? Danke.

Antwort

2

Sie sollten das JSONP Format der api werden, der die Callback-Parameter verwendet

http://140it.com/api/shrink?char_max=5&text=today&callback=do_something 

Verwenden jQuery getJSON und Sie sollten gut zu gehen.

6

Sie können domainübergreifende AJAX-Anforderungen nicht ausführen.

I.e. Wenn Ihre Website auf der Domain A.com gehostet wird, können Sie keine $ .ajax-Anfrage an B.com senden.

Eine der Lösungen besteht darin, ein serverseitiges Proxy-Skript in Ihrer eigenen Domäne zu verwenden. Zum Beispiel könnte PHP die Anfrage an 140it senden und jQuery Ihr Skript direkt anstelle von 140it aufrufen lassen. Dies wird in diesem Artikel beschrieben: http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html

Die andere Lösung besteht darin, JSONP-Webdienste zu verwenden, die es ermöglichen, eine Rückruffunktion anzugeben, und können durch Anhängen eines SCRIPT-Elements an Ihre Seite aufgerufen werden. Allerdings bieten nicht alle API-Anbieter JSONP an.

  • Christian
+2

Hier finden Sie weitere Informationen: http://en.wikipedia.org/wiki/Cross-site_scripting. – Blender