跨域请求本地文件
Cross-origin request for local file
我需要在浏览器中打开本地 html 文件。 javascript 工作正常但 ajax 停止工作并且 XMLHttpRequest 给出跨源错误。有没有办法从本地目录 运行 ajax 。对我来说,它仅来自本地文件 运行 是必要的。
谢谢
如果您使用的是 chrome,请尝试 this extension
CORS allows web applications on one domain to make cross domain AJAX requests to another domain. It's dead simple to enable, only requiring a single response header to be sent by the server.
此扩展所做的是添加到响应 header 规则 - Access-Control-Allow-Origin: *
您也可以通过发送响应 header.
手动完成此操作
For simple CORS requests, the server only needs to add the following header to its response: Access-Control-Allow-Origin: *
阅读 this 了解更多信息。
对于任何想知道的人,我必须 运行 应用程序中的服务器来提供 js 文件。似乎没有 运行 宁服务器是不可能的。
如果有人知道其他方法,请告诉。
如果您能够更改服务器代码,您可以尝试将字符串 "null" 添加到允许的来源。在 Chrome 中,如果它是来自本地文件的 运行,它会将原点作为 "null" 发送。
这是 ASP.NET Core 中用于设置 "null" 来源的示例:
services.AddCors(options =>
{
options.AddPolicy("InsecurePolicy",
builder => builder
.WithOrigins("null")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
请注意,这是 not recommended,但如果您在开发过程中只需要它,可能就足够了。
在 Firefox 中允许此操作的最简单方法是导航至 about:config,查找 privacy.file_unique_origin
设置并将其关闭。
从本质上讲,Firefox 曾经将同一目录中的本地文件视为来自同一来源,因此 CORS 很满意。 CVE-2019-11730 被发现后,这种行为发生了变化。
我在 Arch 的 84.0.1 上运行良好。不在本地调试时一定要关闭它。
如果您使用的是 VS Code,Live Server 扩展可能会对您有所帮助。它解决了我在编辑网页时遇到的跨域问题。
https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer
我需要在浏览器中打开本地 html 文件。 javascript 工作正常但 ajax 停止工作并且 XMLHttpRequest 给出跨源错误。有没有办法从本地目录 运行 ajax 。对我来说,它仅来自本地文件 运行 是必要的。
谢谢
如果您使用的是 chrome,请尝试 this extension
CORS allows web applications on one domain to make cross domain AJAX requests to another domain. It's dead simple to enable, only requiring a single response header to be sent by the server.
此扩展所做的是添加到响应 header 规则 - Access-Control-Allow-Origin: *
您也可以通过发送响应 header.
手动完成此操作For simple CORS requests, the server only needs to add the following header to its response:
Access-Control-Allow-Origin: *
阅读 this 了解更多信息。
对于任何想知道的人,我必须 运行 应用程序中的服务器来提供 js 文件。似乎没有 运行 宁服务器是不可能的。 如果有人知道其他方法,请告诉。
如果您能够更改服务器代码,您可以尝试将字符串 "null" 添加到允许的来源。在 Chrome 中,如果它是来自本地文件的 运行,它会将原点作为 "null" 发送。
这是 ASP.NET Core 中用于设置 "null" 来源的示例:
services.AddCors(options =>
{
options.AddPolicy("InsecurePolicy",
builder => builder
.WithOrigins("null")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
请注意,这是 not recommended,但如果您在开发过程中只需要它,可能就足够了。
在 Firefox 中允许此操作的最简单方法是导航至 about:config,查找 privacy.file_unique_origin
设置并将其关闭。
从本质上讲,Firefox 曾经将同一目录中的本地文件视为来自同一来源,因此 CORS 很满意。 CVE-2019-11730 被发现后,这种行为发生了变化。
我在 Arch 的 84.0.1 上运行良好。不在本地调试时一定要关闭它。
如果您使用的是 VS Code,Live Server 扩展可能会对您有所帮助。它解决了我在编辑网页时遇到的跨域问题。
https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer