JS跨域请求如何解决

lnc19950126 2015-07-29 01:23:50
function fetchWeatherData (callback, zip)
{
var url="http://weather.yahooapis.com/forecastrss?u=f&p=";
var xml_request = new XMLHttpRequest();
xml_request.onload = function(e) {xml_loaded(e, xml_request, callback);}
xml_request.overrideMimeType("text/xml");
xml_request.open("GET", url+zip);
xml_request.setRequestHeader("Cache-Control", "no-cache");
xml_request.send(null);
}


上面这段代码是iOS一个插件中主题的JS脚本,在试验时发现IE可以正常取到天气数据(例 zip:CHXX0008),但是Chrome则会报“No 'Access-Control-Allow-Origin' header is present on the requested resource”错误,然后放到手机上这个主题也确实无法正常显示天气数据,应该是因为Safari和Chrome内核一样。

那么问题来了,怎样修改才能让这段代码在Chrome中获取到天气数据?谢谢
...全文
246 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hch126163 2015-08-03
  • 打赏
  • 举报
回复
img,script,iframe 等 src 属性
香蕉猪 2015-07-31
  • 打赏
  • 举报
回复
引用 4 楼 lnc19950126 的回复:
[quote=引用 3 楼 jslang 的回复:] 我不是说了,,ie只有本地页面可以跨域,网络上的页面也是不能跨域的
明白了 我以为你说的本地是我要请求的页面。不过已经解决了,还是原代码,之前没效果是因为我手机没联网。。。。。。[/quote]楼主的这个原因我也是醉了的。。。。
lnc19950126 2015-07-29
  • 打赏
  • 举报
回复
引用 3 楼 jslang 的回复:
我不是说了,,ie只有本地页面可以跨域,网络上的页面也是不能跨域的
明白了 我以为你说的本地是我要请求的页面。不过已经解决了,还是原代码,之前没效果是因为我手机没联网。。。。。。
天际的海浪 2015-07-29
  • 打赏
  • 举报
回复
我不是说了,,ie只有本地页面可以跨域,网络上的页面也是不能跨域的
lnc19950126 2015-07-29
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
XMLHttpRequest();是不能跨域请求的,ie只有本地页面可以跨域,网络上的页面也是不能跨域的 你只能在服务器端请求
但是这段代码在IE中是运行正常的 成功取到了天气的XML格式数据。
天际的海浪 2015-07-29
  • 打赏
  • 举报
回复
XMLHttpRequest();是不能跨域请求的,ie只有本地页面可以跨域,网络上的页面也是不能跨域的 你只能在服务器端请求

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧