from origin 'null' has been blocked by cors policy: cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https.
时间: 2023-05-31 15:19:23 浏览: 9594
### 回答1:
这个错误信息表明浏览器的跨域资源共享 (CORS) 策略阻止了从“origin null”发出的请求。浏览器只支持以下协议方案的跨域请求: http、data、chrome、chrome-extension、chrome-untrusted、https。
### 回答2:
"从源 'null' 的 CORS 策略被阻止:跨源请求仅支持协议方案:http、data、chrome、chrome-extension、chrome-untrusted、https。"这个错误通常出现在使用 JavaScript 进行跨域请求时。
跨域请求是指浏览器试图从一个源(或域名)向另一个源发出 AJAX 请求时,浏览器会在控制台中抛出错误。CORS 策略是一种防止跨域攻击的安全措施,它限制了浏览器从一个源向另一个源发出 AJAX 请求。
这个错误提示的意思是,源为 'null' 的请求被阻止了,因为该请求不满足允许的协议方案。原因可能是你在浏览器中运行的 JavaScript 代码从一个没有设置协议(例如‘file://’)的本地文件中加载了 HTML 页面,然后试图发出 AJAX 请求。
要解决这个问题,有几个办法:
1.将你的 HTML 页面放置到一个 Web 服务器上,并通过 HTTP 或 HTTPS 协议打开它。
2.你可以在使用 AJAX 请求时指定协议方案,例如,在 jQuery 中,你可以设置:
$.ajax({
type: "POST",
dataType: "json",
url: "http://example.com/api",
headers: {
"X-Requested-With": "XMLHttpRequest"
},
success: function(data) {
}
});
这里需要将 URL 参数中的协议方案改为`http://`或者`https://`。
3.运行 Chrome 浏览器时,可以在启动参数中添加 --disable-web-security选项来禁用 CORS 策略。
最好的解决办法是使用合适的协议方案来打开 HTML 页面,并在 AJAX 请求中使用相应的协议方案。这样不仅可以解决这个错误,也可以保证网络安全。
### 回答3:
CORS(Cross-Origin Resource Sharing)是一种安全机制,可以防止恶意站点从其他域名获取资源。当浏览器尝试从另一个域请求数据时,如果目标网站返回一个不包含当前源(Origin)的 Access-Control-Allow-Origin 头部,浏览器会阻止响应,这就是跨域请求被阻止的原因。
该错误消息"from origin 'null' has been blocked by cors policy"通常出现在开发过程中,特别是当您在开发环境中使用本地主机和端口同时使用AJAX请求时。
该错误信息意味着您的请求被拒绝了,因为您的请求是跨域的,源为"null"并且协议方案不符合CORS策略。要解决该问题,您需要做出以下更改:
1. 首先,您需要确保您的请求被发送到合适的端点,并且有效负载与您所期望的数据一致。您可以使用Chrome DevTools检查HTTP请求的正文内容和标头信息,确保它们是正确的。
2. 您还需要在服务器端配置 CORS 安全策略。您需要将 Access-Control-Allow-Origin 头部设置为您希望允许的来源。如果您的站点不需要跨域访问,您可以使用"*"将允许任何来源访问您的站点。
3. 如果您仍然遇到问题,请尝试使用反向代理将请求代理到另一个域,并让服务器端对请求进行处理。有些Web服务器可能会相应地配置CORS安全策略。
总之,当您遇到此错误时,说明您在跨域请求时出现了问题。要解决此问题,您需要检查您的请求负载和头部信息是否正确,配置CORS安全策略,或使用反向代理将请求代理到您的服务器。
阅读全文