Access-Control-Allow-Origin不允许使用Origin http://XXXXX.com

时间:2012-01-15 22:07:47

标签: javascript jquery yahoo yahoo-api

我正在尝试向雅虎天气预报这样的

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 我怎样才能解决这个问题?

1 个答案:

答案 0 :(得分:2)

  

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

实际上,由于origin policy restriction相同,您无法发送跨域AJAX调用。因此,您不仅限于localhost。您的限制与http://weather.yahooapis.com不同。因此,除非包含您的javascript的页面托管在此域上,否则您无法向其发送AJAX请求。

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