我需要在浏览器中打开本地html文件。 javascript工作正常,但ajax停止工作,XMLHttpRequest给出了交叉原始错误。有没有办法从本地目录运行ajax。我必须只从本地文件运行。
由于
答案 0 :(得分:2)
对于任何想要了解的人,我必须在应用程序中运行服务器来提供js文件。似乎没有运行服务器就无法做到这一点。 如果有人知道另一种方式,请告诉。
答案 1 :(得分:2)
在 Firefox 中允许此设置的最简单方法是导航到 about:config,查找 privacy.file_unique_origin
设置并将其关闭。
本质上,Firefox 过去常常将来自同一目录的本地文件视为来自同一来源,因此 CORS 很高兴。这种行为在 CVE-2019-11730 被发现后发生了变化。
它在 Arch 上的 84.0.1 上运行良好。非本地调试时,请务必将其关闭。
答案 2 :(得分:0)
如果能够更改服务器代码,则可以尝试将字符串“ null”添加到允许的来源。在Chrome中,如果它是从本地文件运行的,则将原点发送为“空”。
这是ASP.NET Core中用于设置“空”来源的示例:
services.AddCors(options =>
{
options.AddPolicy("InsecurePolicy",
builder => builder
.WithOrigins("null")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
请注意,这是not recommended,但如果在开发过程中只需要它,可能就足够了。
答案 3 :(得分:0)
如果您使用的是 VS Code,Live Server 扩展可能会对您有所帮助。它解决了我在编辑网页时遇到的跨域问题。
https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer
答案 4 :(得分:-1)
如果您使用的是Chrome,请尝试this extension
CORS允许一个域上的Web应用程序向另一个域发出跨域AJAX请求。启用它很简单,只需要服务器发送一个响应头。
此扩展程序的作用是添加到响应标头规则 - Access-Control-Allow-Origin: *
您也可以通过发送响应标题手动执行此操作。
对于简单的CORS请求,服务器只需要在其响应中添加以下标头:
Access-Control-Allow-Origin: *
阅读this了解详情。