2011-08-12 5 views
0

J'ai un problème vraiment étrange avec $.getJSON() sur localhost. Mon code de test est ci-dessous:

$(document).ready(function(){ 
     var url = "http://script.mydomain.com/location/newid" 
     var url2 = "http://localhost/cms/location/newid" 

      $.getJSON(url2, function(id) { 
       alert(id); 
      }); 
}); 

Pour url2 cela fonctionne parfaitement mais pour url cela ne fonctionne pas. Quelqu'un pourrait-il donner un indice pour résoudre ce problème? Ces urls renvoie json (exemple: "34") si quelqu'un veut savoir.

EDIT [RESOLU]:

Si quelqu'un à l'avenir utilisera $.getJSON rappeler que vous ne pouvez pas appeler des domaines "étrangers".

Lorsque j'ai exécuté le script overhead sous script.mydomain.com domaine tout fonctionne bien!

+2

Vous utilisez probablement la [Politique de même origine] (https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript). – circusbred

Répondre

6

La requête AJAX est limitée par une stratégie interdomaine. Fondamentalement, vous ne pouvez pas faire de requêtes ajax si elles ne vont pas sur le serveur sur lequel le site original a été hébergé. C'est un peu plus compliqué que ça, mais je suppose que c'est le cas.

+0

OK, alors comment puis-je exécuter ce script de test sur cw.uppercut.pl et demander location/newid? – user874565

1

Vous êtes limité par la sécurité du navigateur pour obtenir du code de votre propre site Web (jquery utilise XMLHttpRequest pour getJSON). Pour contourner cela, vous devez utiliser jsonp (jquery ajoute une balise de script) ou créer et ajouter une balise de script à votre document.

1

Il y a des chances que vous essayiez de lancer une requête AJAX de l'hôte local vers le domaine cw.uppercut.pl.

Ce n'est pas un problème de la bibliothèque.

+0

OK, alors comment puis-je exécuter ce script de test sur cw.uppercut.pl et demander l'emplacement/newid? – user874565