Question

J'essaie de faire une demande au Yahoo Whather Forcast comme ça

function parseXml(woeid)
{
 $.ajax({
  type: "GET",
  url: "http://weather.yahooapis.com/forecastrss?w="+woeid,
  dataType: "xml",
  success: parse_wheather
 }); 
} 

Et j'obtiens le message d'erreur suivant

XMLHttpRequest cannot load http://weather.yahooapis.com/forecastrss?w=1937103. Origin http://XXXXXXXX.com is not allowed by Access-Control-Allow-Origin.

Je sais que je ne peux pas faire la demande de LocalHost, mais je ne dirige pas un localhost comment puis-je résoudre ce problème ??

Était-ce utile?

La solution

Je sais que je ne peux pas faire la demande de LocalHost

En fait, en raison de la même chose Restriction de politique d'origine Vous ne pouvez pas envoyer des appels AJAX à domaine croisé. Vous ne êtes donc pas seulement limité à localhost. Vous êtes limité à quelque chose de différent de http://weather.yahooapis.com. Ainsi, à moins que la page contenant votre JavaScript ne soit hébergée sur ce domaine, vous ne pouvez pas y envoyer de demandes AJAX.

Voici un guide Vous pourriez jeter un œil aux appels Ajax Cross Domain. Dans votre cas, vous pouvez utiliser un pont côté serveur. Vous définissez donc un script côté serveur sur votre domaine qui rapportera les résultats du domaine distant et vous pourrez ensuite envoyer la demande AJAX à votre script afin d'éviter de violer la même restriction de stratégie d'origine.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top