我正在尝试向雅虎天气预报这样的
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 我怎样才能解决这个问题?
答案 0 :(得分:2)
我知道我无法从localhost发出请求
实际上,由于origin policy restriction相同,您无法发送跨域AJAX调用。因此,您不仅限于localhost
。您的限制与http://weather.yahooapis.com
不同。因此,除非包含您的javascript的页面托管在此域上,否则您无法向其发送AJAX请求。
您可以查看有关跨域AJAX调用的a guide。在您的情况下,您可以使用服务器端桥。因此,您将在域上定义一个服务器端脚本,用于获取远程域结果,然后您可以将AJAX请求发送到您的脚本,以避免违反相同的源策略限制。