XMLHttpRequest 无法加载 URL。 Access-Control-Allow-Origin 不允许来源

2024-04-20

我想创建一个使用来自另一个域的 xml 数据的小型网站。 (天气数据来自 Weather Underground:www.wunderground.com)。我只使用 html 和 javascript,并在 Visual Studio Express 2012 for Web 中编写所有内容。

我按如下方式发出并发送 xml 请求:

url = "http://api.wunderground.com/api/3c6e3d838e217361/geolookup/conditions/forecast/q/51.11999893,-114.01999664.xml";

xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", url, false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;

问题是我在 Google Chrome(版本 29.0.1547.66)开发者控制台中收到以下错误:

XMLHttpRequest cannot load http://api.wunderground.com/api/3c6e3d838e217361/geolookup/conditions/forecast/q/51.11999893,-114.01999664.xml. Origin http://localhost:49933 is not allowed by Access-Control-Allow-Origin. 

或者在 Internet Explorer(版本 10.0.8)控制台上执行以下操作:

SEC7118: XMLHttpRequest for http://api.wunderground.com/api/3c6e3d838e217361/geolookup/conditions/forecast/q/51.11999893,-114.01999664.xml required Cross Origin Resource Sharing (CORS). 

据我了解,CORS(http://enable-cors.org/ http://enable-cors.org/)需要客户端和服务器双方的努力才能工作。我想假设 Weather Underground API 知道它在做什么,并且已经适当地启用了一些功能,例如设置响应标头以包含“Access-Control-Allow-Origin: *”,并且我知道当我使用另一个 API 提供商(世界天气在线)尝试相同的代码。所以我认为这是我应该能够在我的客户端代码中修复的问题。 另一个SO答案,建议修复服务器端标头:CORS 与 XMLHttpRequest https://stackoverflow.com/questions/14728418/cors-with-xmlhttprequest

我试图寻找答案,但不理解以下文章:http://dev.opera.com/articles/view/dom-access-control-using-cross-origin-resource-sharing/ http://dev.opera.com/articles/view/dom-access-control-using-cross-origin-resource-sharing/ http://saltybeagle.com/2009/09/cross-origin-resource-sharing-demo/ http://saltybeagle.com/2009/09/cross-origin-resource-sharing-demo/


Use Ajax http://api.jquery.com/jQuery.ajax/如果你想在 jquery 中使用 JSONP

对于 JavaScript 请参见这里,http://developer.chrome.com/extensions/xhr.html http://developer.chrome.com/extensions/xhr.html and http://www.leggetter.co.uk/2010/03/12/making-cross-domain-javascript-requests-using-xmlhttprequest-or-xdomainrequest.html http://www.leggetter.co.uk/2010/03/12/making-cross-domain-javascript-requests-using-xmlhttprequest-or-xdomainrequest.html

Use .json格式化数据而不是.xml使您的应用程序更简单、更快,即http://api.wunderground.com/api/3c6e3d838e217361/geolookup/conditions/forecast/q/51.11999893,-114.01999664.json http://api.wunderground.com/api/3c6e3d838e217361/geolookup/conditions/forecast/q/51.11999893,-114.01999664.json

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XMLHttpRequest 无法加载 URL。 Access-Control-Allow-Origin 不允许来源 的相关文章

  • 使用 Dragstart PreventDefault 禁用浏览器默认图像拖动,但它也禁用我的拖动事件

    我尝试阻止浏览器默认图像在dragstart中拖动 但不知何故它也禁用了drag和dragend事件 无论如何 我可以禁用浏览器默认图像拖动 但它仍然会运行拖动和拖动结束事件 或者唯一的选择是使用背景图像 我不想这样做 因为我需要因此更改很
  • Javascript时间转换正则表达式

    我有一种使用 Net 中的正则表达式来转换时间的方法 例如 1h 20m 格式为双倍 就这个 public static double GetTaskHours this string tmpHours Double taskHours 0
  • 预计来电次数:>= 1 已接来电次数:0

    我正在学习带有钩子的reactjs表单 现在我想使用jest和enzyme测试提交时的表单 这是我的登录组件 import React from react function Login const email setEmail useSt
  • 在react中读取excel文件

    我正在尝试读取 excel 文件并使用 XLSX 将其转换为 JSON 格式 但无法做到这一点 当文件位于本地计算机上时 任何人都可以建议转换方法吗 通过输入选择您本地机器的 Excel 表 在那之后 您的 Excel 数据将显示为 JSO
  • 通过排队预加载图像?

    我正在寻找一种预加载特定图像并将其添加到队列中的方法 这是我目前所处的位置 http shivimpanim org testsite imageloader html http shivimpanim org testsite image
  • jQuery 函数在不应该运行的时候运行

    我有一个函数 仅当宽度小于特定值时才需要运行 我已经这样做了if window width lt n 但当宽度大于 n 时 该函数也会运行 The if if window width lt n 由于背景颜色发生变化 浅灰色 1000px
  • 如何在 Angular 4 材料的 Stepper 中提交表单

    如何在角材料的步进器中提交表单数据 我正在遵循角材料的示例https material angular io components stepper examples https material angular io components
  • 将 PhotoSwipe 配置为不使用整个窗口?

    我目前正在尝试使用构建移动图片库照片滑动 http photoswipe com 我已经能够让它工作了 但有一个小问题 当我 单击照片缩略图 实际照片总是占据整个 视口 当您在移动设备上查看图库时 这是可以的 但是 如果您的视口是计算机屏幕
  • ionic 2 从 json 填充选择选项

    我正在尝试动态填充ion select带有 json 对象的下拉列表 我的 html 组件如下所示
  • Select2 基本示例不起作用

    我想得到select2使用 symfony2 脚本的库 我正在尝试实现提供的基本示例https select2 github io examples html https select2 github io examples html pa
  • 如何在 d3.scale.ordinal() 中指定域?

    var W 100 var H 200 var data v 4 v 8 v 15 v 16 v 23 v 42 var x d3 scale linear domain 0 max x range 0 W var y d3 scale o
  • Redux 中的排队操作

    我目前遇到的情况是我需要连续运行 Redux Actions 我看过各种中间件 比如 redux promise 看起来不错如果您知道触发根操作 由于缺乏更好的术语 时的连续操作是什么 本质上 我想维护一个可以随时添加的操作队列 每个对象在
  • 如何防止 Ajax/javascript 结果在浏览器中缓存?

    如何防止浏览器缓存Ajax结果 我有事件触发的 Ajax 脚本 仅当浏览器数据被清除时才显示结果 在 IE6 和 Firefox 3 0 10 中测试 随机 URL 可以工作 但它是一种 hack HTTP 内置了应该可以工作的解决方案 尝
  • PapaParse 与 Angular JS

    喜欢 PapaParse 漂亮的 CSV 解析器和解解析器 任何人都可以帮助我将其与 Angular JS 结合起来吗 我喜欢让 PapaParse 以 Angular 方式工作 正在尝试解决方案 实际上我没有做任何花哨的事情来加载它 只需
  • 在 Spring 5 Webflux 中启用 CORS?

    如何启用CORS在 Spring 5 Webflux 项目中 我找不到任何合适的文档 我使用这个自定义过滤器取得了成功 import org springframework context annotation Bean import or
  • Javascript,检测触摸设备

    我正在使用此函数来检测设备是否是触摸设备 function is touch device return ontouchstart in window onmsgesturechange in window 从这里得到这个功能 使用 Jav
  • PHP/Web 脚本保护

    我想用 PHP 和 javascript 编写一个脚本 并以某种方式保护我的源代码 以便我可以出售我的脚本 我正在寻找如何保护我的脚本的想法 如果我将其出售给某人 我如何阻止该人将其作为他们的产品重新分发 我知道有ZEND和ionCube
  • Node Express 和 csurf - 403(禁止)无效的 csrf 令牌

    浏览并尝试了我在这里和其他地方通过谷歌搜索能找到的所有东西 但我就是无法克服这一点 我正在使用 Node Express EJS 并尝试在使用 jQuery ajax 发布的表单上使用 csurf 无论我如何配置 csurf 我都会收到 4
  • 在多个 html 文件上运行 javascript

    我有一个包含 1000 个 html 文件的文件夹 我必须使用 xpath 从每个 html 中删除某些节点 所以我已经制作了javascript 我无法打开每个文件并通过 Firefox 控制台运行 javascript 我用的是linu
  • 如何禁用 Aloha 编辑器工具栏?

    有没有办法像侧边栏一样禁用 Aloha 的 ExtJS 工具栏 Aloha settings modules aloha aloha jquery editables editable jQuery sidebar disabled tru

随机推荐