jQuery XML 错误:“请求的资源上不存在“Access-Control-Allow-Origin”标头”
尝试时使用 jQuery 访问位于不同域的 XML 文件时,您可能会遇到错误消息:“请求的资源上不存在‘Access-Control-Allow-Origin’标头。”此错误是由于同源策略导致的,该策略限制跨源 AJAX 调用。
了解同源策略
同源策略强制执行以下操作Web 浏览器仅允许对与发出请求的 HTML 页面位于同一域中的服务进行 AJAX 调用。在给定的示例中,HTML 页面托管在 http://run.jsbin.com/ 上,而 XML 文件位于 http://www.ecb.europa.eu/ 上,从而导致跨域请求:被浏览器阻止。
启用跨源请求 (CORS)
要允许跨源请求,服务器必须在其响应中包含适当的标头。这些标头之一是 Access-Control-Allow-Origin 标头,它指定允许访问资源的源。
对于 XML 文件,ECB 的服务器不提供必要的 CORS标头,因此出现错误消息。要解决此问题,需要将服务器配置为包含以下标头:
Access-Control-Allow-Origin: http://run.jsbin.com Access-Control-Allow-Methods: GET Access-Control-Allow-Headers: Content-Type
预检请求注意事项
在某些情况下,例如使用非简单标头发出 POST 请求时,浏览器可以执行 OPTIONS 预检请求来确定服务器是否支持特定请求的 CORS。如果服务器对此预检请求的响应不包含适当的 CORS 标头,则主请求将失败并显示相同的错误消息。因此,在对预检和主请求的响应中包含必要的标头非常重要。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3