2012-08-29 4 views
6

mein Problem ist:getJSON eine IP unter Verwendung von nicht funktioniert

Wenn ich json mit dem folgenden Code

var url="http://localhost:9000/json"; 
$.getJSON(url, 
function(data){ 
    alert(data['yay']); 
    }); 

es perfekt funktioniert nennen, aber, mein localhost IP 10.0.0.145 ist, und wenn ich ersetzen localhost mit der IP-Adresse, es funktioniert nicht mehr

var url="http://10.0.0.145:9000/json"; 
$.getJSON(url, 
function(data){ 
    alert(data['yay']); 
    }); 

Antwort

6

Sie verletzen die same origin policy. Wenn Sie die Zielsite kontrollieren, sollten Sie entweder einen JSONP Anruftyp verwenden oder die Option cross domain (crossDomain) auf Ihrer Site und in Ihrem AJAX-Anruf aktivieren.

Ihr Browser führt den Anruf standardmäßig nicht durch, wenn Sie denselben Ursprung verletzen. Sie werden das wissen, wenn Sie Ihren HTTP-Verkehr mit Fiddler, FireBug oder Chrome Tools überwachen. Ihre Anfrage wird nicht ausgeführt. Wenn das der Fall ist, dann nimm einen der obigen Ansätze.

Ich hoffe, das hilft. Viel Glück!

3

der Grund dafür ist einfach Cross-Domain-Schutz: ajax-Abfrage von json einer anderen Domäne (scheinbar) kann nur erfolgen, wenn bestimmte Header von t angegeben er Server.

Ich schlage vor, Sie lesen this complete reference als dies ist jetzt eine wichtige Sache zu wissen, um Ajax-basierte Anwendungen zu programmieren.

Verwenden Sie den gleichen Namen für beide.

Verwandte Themen