CORS:对预检请求的响应未通过访问控制检查 - 如何在本地主机上解决它?

2023-12-27

我是 JavaScript 的初学者,我正在尝试编写一个脚本来检查网站是否存在,比方说https://example.com返回 404 状态代码或 200,根据结果,我将访问它或不访问它。我正在前端执行此操作。我没有服务器端,因为该网站是静态网站,不使用数据库。 我正在使用 XMLHttpRequest 执行此操作。

 url = $("#foo").attr("href")
    function UrlExists(ur)
    {
        var http = new XMLHttpRequest();
        http.open('GET', ur, true);
        http.setRequestHeader("Access-Control-Allow-Origin", "http, https");
        http.setRequestHeader("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTONS");
        http.setRequestHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization")
        http.send();
        console.log(http.status);
    }
    UrlExists(url)

问题是当我运行此脚本时,抛出以下异常:

访问 XMLHttpRequest'http://example.com'来自原点“null”已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。

从我到目前为止读到的内容来看,这更像是 CORS 问题而不是 JavaScript,而且到目前为止我还找不到解决方案。

有人可以帮助我解决这个问题并解释为什么吗? 我已经检查了有关 SO 的其他问题,到目前为止,我没有找到可行的解决方案。如果有的话,我也愿意接受其他解决方案。太感谢了!

我非常感谢您的宝贵时间!

更新1:不幸的是,我仍然在这个问题上挣扎。我已经阅读了很多有关 CORS 策略的内容,问题是我不知道应该如何安全地允许标头通过请求从我的服务器发送到另一台服务器。 资源是:一个 HTML 页面和其中的一些 JS 代码。正如我上面提到的,我试图从我的网站向另一个网站发送请求,以检查该网站的状态,如果弹出 404,我想重定向我的用户。


您需要在 Web 服务器上设置 CORS 标头。出于安全原因,它默认处于禁用状态。

例如,在 Nginx 中,你可以这样做

add_header Access-Control-Allow-Origin example.com;

如果您使用的托管服务不允许修改网络服务器配置,您可以将所需的标头添加到您的 .htaccess 文件中,如下所示。换句话说,将其放置在包含 index.html 的项目根目录中。另外,将权限更改为 644。

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"

参考:

https://stackoverflow.com/a/20082724/2777988 https://stackoverflow.com/a/20082724/2777988

https://blog.container-solutions.com/a-guide-to-solving-those-mystifying-cors-issues https://blog.container-solutions.com/a-guide-to-solving-those-mystifying-cors-issues

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CORS:对预检请求的响应未通过访问控制检查 - 如何在本地主机上解决它? 的相关文章

  • 两个单独表格上的 Td 高度

    我有两个单独的表 我在每个 tr 上使用焦点 悬停函数 该函数同时在两个表上都很好用 我的问题是 td 高度 因为如果第一个表中 td 的描述更大 将显示在中的两行上相同的td和td的高度将被修改 但仅限于第一个表td 如何记住第一个表中
  • 如何通过单击链接并确认弹出窗口来检查两个条件?

    我是 JavaScript 新手 有 2 个 html 链接 li a class dropdown item confirm href wtdata a li li a class dropdown item confirm href f
  • jquery(或纯js)模拟按下回车键进行测试

    模拟用户按 enter 键的最佳方法是什么 element keypress 似乎不允许我传递按下的实际键 这是用于单元测试的 演示在这里 http jsfiddle net 3xTM2 var e jQuery Event keypres
  • getFieldValue 或 Formik 中的类似内容

    有没有办法获取 formik 中单击处理程序内字段的值 您可以使用setFieldValue在那里 所以我假设 但在任何地方都找不到 Formik 应该有类似的东西来检索值
  • 如何禁用WebStorms未使用的功能颜色功能?

    我想知道是否有人知道如何禁用 WebStorm 中的功能 如果您创建一个函数但尚未调用它 颜色将保持绿色而不是灰色 我进入首选项区域并将全局函数颜色更改为绿色 但只有当我调用它们时它们才会变成绿色 对于任何未调用的函数将保持灰色 转到文件
  • 非法的break语句(Node.js)

    尝试在 Node js 和 MongoDB 中查找唯一 ID 方法是创建一个 while 循环来查询 MongoDB 中的现有 ID 直到找到唯一值 如果 ID 已被使用 则最后的数字会递增 直到 Mongo 不返回任何内容 一切正常 除了
  • VueJS - 验证表单文件上传中的文件大小要求

    我正在使用 Bootstrap Vue 表单制作一个简单的表单 用户可以在其中上传文件 有没有办法验证使用 Vue 表单选择的文件的大小 我想阻止用户上传此类文件 我见过this https stackoverflow com questi
  • Angular 2延迟加载模块-服务不是单例

    我已经在我的应用程序中实现了延迟加载模块 app module ts 配置正确 NgModule declarations AppComponent HeaderComponent HomeComponent imports Browser
  • 从 Flow 中的对象值定义联合类型

    我有一个这样的枚举 const Filter ALL ALL COMPLETED COMPLETED UNCOMPLETED UNCOMPLETED 我想做的是声明一个联合类型 如下所示 type FilterType Filter ALL
  • HTML5 画布在缩放和旋转后平移

    我正在尝试用画布做一些事情 首先 我让用户上传图像 如果图像比我想要的大 我需要将其缩小 那部分工作得很好 最近我们遇到了 iPhone 用户上传图像的问题 这些都存在方向问题 我已经弄清楚如何提取方向 我的问题是当我操纵画布中的图像时会发
  • 在 MongoDB 中对 Null 值进行最后排序

    我使用以下查询根据名为 sortIndex 的字段按升序填充 MongoDB 中的项目 有时 数据库中的项目没有 sortIndex 字段 通过以下查询 具有 null sortIndex 的项目显示在顶部 我想知道如何让它们显示在底部 我
  • 当位置从相对固定变为固定时,div 的宽度会发生变化

    当 div topNav 的位置样式从相对更改为固定时 其宽度会更改几个像素 我找到了一个 jquery 插件 http imakewebthings github com jquery waypoints 它可以优雅地执行我正在寻找的相同
  • 如何以编程方式确定 HTML 对象可以侦听哪些事件?

    我一直在查看developer mozilla org 和Apple 开发文档上的文档 但我找不到解释是否可以通过编程方式确定特定HTML 标记是否支持给定事件监听器的文档 就像我知道的那样
  • Phantomjs page.content 未检索页面内容

    我使用 Phantomjs 来抓取使用 JavaScript 和 Ajax 加载动态内容的网站 我有以下代码 var page require webpage create page onError function msg trace v
  • 对数组进行分组并获取计数[重复]

    这个问题在这里已经有答案了 假设我有这样的数组 foo bar foo bar bar bar zoom 我想将其分组 这样我就可以得到这样的计数 foo 2 bar 4 zoom 1 有没有一个实用程序可以做到这一点 只需使用该功能Arr
  • 在 GeoJson 数据接收到的 Google 地图多边形上放置标签

    我想将带有信息的标签 或带有标签的 div 放在由下面的代码片段绘制的多边形上 样式属性已成功应用于要素 多边形类型 有谁知道如何向该特征添加文本并将其显示在多边形的中心 function handleGeoJson data map da
  • Angular 中的动态子组件

    我正在构建一个具有一致的元素列表设计模式的应用程序 如果我有一个 A 类型的对象 我会创建AComponent它接受a作为输入 然后创建另一个组件来迭代 A 列表 AListComponent 那么如果我有一个对象 B 我需要做同样的事情
  • Img src 路径以及要传递的标头参数

    我在 jsp 页面中有一个 img 标记 其中 src 路径需要传递标头参数才能获取图像 我们怎样才能实现它呢 您现在可以使用fetch https developer mozilla org en US docs Web API Fetc
  • 访问影子 DOM 中的元素

    是否有可能查找 Shadow DOM 中的元素与蟒蛇硒 示例用例 我有这个input with type date
  • AngularJS 中的全局模拟对象用于 jasmine/karma 测试

    我有一个正在模拟进行单元测试的对象 基本上在我的测试文件中 我将其模拟如下 var mockObject mockMethod1 function return true mockMethod2 function return true b

随机推荐