2

我正在尝试像这样向 yahoo wheather forcast 提出请求

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

我收到以下错误消息

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

我知道我无法从 localhost 发出请求,但我没有运行 localhost 我该如何解决这个问题?

4

1 回答 1

2

我知道我无法从 localhost 发出请求

实际上,由于同源策略限制,您不能发送跨域 AJAX 调用。因此,您不仅限于localhost. 你被限制在任何不同于 http://weather.yahooapis.com. 因此,除非包含您的 javascript 的页面托管在此域上,否则您无法向其发送 AJAX 请求。

这是一个您可能会看一下关于跨域 AJAX 调用的指南。在您的情况下,您可以使用服务器端网桥。因此,您将在您的域上定义一个服务器端脚本,该脚本将获取远程域结果,然后您可以将 AJAX 请求发送到您的脚本,以避免违反同源策略限制。

于 2012-01-15T22:09:02.640 回答