来自 file:// URL 的请求出现“Access-Control-Allow-Origin 不允许 Origin null”错误
问题: 开发人员在通过 jQuery 的 AJAX 支持从 file:// URL 向 Panoramio 发出请求时遇到问题。控制台中出现错误“Access-Control-Allow-Origin 不允许 Origin null”。
根本原因分析:
-
不正确的请求类型: GET 请求应使用“jsonp”的数据类型或包含“callback=?”在 URL 中启用 JSONP,这是跨域请求所必需的。
-
file:// URL 的 CORS 限制: 跨域资源共享 (CORS) 标头无法授权来自file:// 通过 echo-back 带有 null Origin header 的 URL
解决方案:
要解决此问题,需要执行以下步骤:
-
使用 JSONP请求: 使用 $.getJSON 或将 dataType 设置为“jsonp”以让 $.get 触发JSONP,如果“callback=?”则将请求类型修改为“jsonp”存在于 URL 中。
-
避免 file:// URL: 确保通过 http:// URL 进行测试,因为 file:// URL 的 CORS 支持有限。
故障排除说明:
-
验证 JSONP 用法: 确保 $.get 的 dataType 设置为 jsonp 或 $.getJSON 与“callback=?”一起使用
-
跨域请求的 CORS: 通过 http:// 进行测试,以避免 file:// URL 的 CORS 限制。确认浏览器支持 CORS,因为 Opera 和 Internet Explorer 已延迟实现。
以上是为什么我的来自 `file://` URL 的 AJAX 请求收到'Access-Control-Allow-Origin 不允许 Origin null”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!