当前位置: 首页 > 知识库问答 >
问题:

本地文件的跨源请求

融渊
2023-03-14

我需要在浏览器中打开一个本地html文件。javascript运行良好,但ajax停止工作,XMLHttpRequest会出现交叉原点错误。有没有办法从本地目录运行ajax。对我来说,它只从本地文件运行是必要的。

谢谢

共有3个答案

季稳
2023-03-14

如果您能够更改服务器代码,您可以尝试将字符串“null”添加到允许的起源。在Chrome中,如果它是从本地文件运行的,它会将原点发送为“null”。

下面是ASP.NET Core中用于设置“null”原点的示例:

services.AddCors(options =>
{
    options.AddPolicy("InsecurePolicy",
        builder => builder
            .WithOrigins("null")
            .AllowAnyMethod()
            .AllowAnyHeader()
            .AllowCredentials());
});

请注意,这不是建议的,但如果您只是在开发过程中需要它,可能就足够了。

籍利
2023-03-14

在Firefox中允许这样做的最简单的方法是导航到about:config,查找privacy.file_unique_origin设置并将其切换。

从本质上说,Firefox曾经把来自同一目录的本地文件当作来自同一来源,因此CORS很高兴地感到满意。在CVE-2019-11730被发现后,这种行为发生了改变。

它对我在84.0.1的拱门上工作得很好。只要确保在不进行本地调试时将其关闭即可。

来源

寇涵容
2023-03-14

对于任何想知道的人来说,我必须在应用程序中运行一个服务器来提供js文件。似乎不运行服务器是不可能做到的。如果有人知道另一种方法,请告诉我。

 类似资料:
  • 问题内容: 我正在尝试使用将3D模型加载到Three.js中,并且该3D模型与整个网站位于同一目录中。 我遇到了错误,但是我不知道是什么原因引起的,也不知道如何解决。 问题答案: 我的crystal ball说您正在使用或加载模型,这对错误消息保持正确,因为它们不是 因此,您既可以在本地PC上安装Web服务器,也可以将模型上传到其他地方,然后使用并将URL更改为 起源在RFC-6454中定义为 因

  • 我正在工作的角度前端项目和使用angular7项目。我使用aws api作为后端。每当我调用aws api时,它都会给我带来以下错误。 跨源请求被阻止:同一源策略不允许读取https://xxxxxxx.execute-api.us-east-1.amazonaws.com/xxx/subscriptionPayment上的远程资源。(原因:在CORS飞行前信道的CORS标头'Access-Con

  • 如果我们向另一个网站发送 fetch 请求,则该请求可能会失败。 例如,让我们尝试向 http://example.com 发送 fetch 请求: try { await fetch('http://example.com'); } catch(err) { alert(err); // fetch 失败 } 正如所料,获取失败。 这里的核心概念是 源(origin)—— 域(domai

  • 我正在尝试一些非常简单的方法,但由于某些原因它不起作用: 启动index.html时出现的错误: 无法加载文件:///e:/dev/eclipse/syrilab/pages/header.html:跨源请求仅支持协议方案:http、data、chrome、chrome-extension、HTTPS。 无法加载文件:///e:/dev/eclipse/syrilab/pages/home.htm

  • 我已经在nodejs中创建了一个本地REST API服务器,它正在从本地MongoDB数据库获取数据。我还创建了一个基本的网页,它从本地服务器请求这些数据。现在,当我试图从网页获取数据时,它会给我以下错误: 我在stackoverflow上搜索了一下,找到了this和this解决方案。我已经在我的主文件中添加了建议的标题。但它仍然给出了同样的错误。 下面是我的servers文件,我在其中添加了这些

  • 当我使用axios发送XMLHttpRequest时,就会发生这种情况。 错误:XMLHttpRequest无法加载https://nuxt-auth-routes.glitch.me/api/login。对飞行前请求的响应没有通过访问控制检查:在所请求的资源上没有“访问-控制-允许-起源”标头。因此,不允许访问源'http://localhost:3000'。