对预检请求的响应未通过访问控制检查 Laravel 和 Ajax 调用

2023-11-21

我有一个用 Laravel 5.1 制作的 REST api,托管在远程服务器上。现在,我尝试从另一个网站(我在本地)使用该 API。

在 Laravel 中,我设置了发送 CORS 标头所需的行。我还使用 Postman 测试了 API,一切似乎都正常!

在前端

然后,在网站中我使用ajax发送了POST请求,代码如下:

var url="http://xxx.xxx.xxx.xxx/apiLocation";
var data=$("#my-form").serialize();
    $.ajax({
                    type: "POST",
                    url: url,
                    data: data,
                    headers: { 'token': 'someAPItoken that I need to send'},
                    success: function(data) {
                        console.log(data);
                    },
                    dataType: "json",
                }); 

购买然后我在控制台中收到此错误:

XMLHttpRequest 无法加载http://xxx.xxx.xxx.xxx/apiLocation。 对预检请求的响应未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。起源 'http://localhost' 因此不允许访问。

在后端

在 API 中我设置了这个(使用 Laravel 中间件来设置标头):

return $next($request)
            ->header('Access-Control-Allow-Origin', '*')
            ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');

所以,我很困惑到底问题出在哪里。

  1. 在服务器里?但为什么 Postman 工作得很好呢?
  2. 是在 Ajax 调用中吗?那么,那我应该添加什么呢?

您的后端代码必须包含一些显式处理OPTIONS发送的请求200仅使用配置的标头进行响应;例如:

if ($request->getMethod() == "OPTIONS") {
    return Response::make('OK', 200, $headers);
}

服务器端代码还必须发送一个Access-Control-Allow-Headers包含名称的响应标头token您的前端代码发送的请求标头:

-> header('Access-Control-Allow-Headers', 'token')

但为什么 Postman 工作得很好呢?

Postman 不是 Web 应用程序,并且不受浏览器对 Web 应用程序设置的同源限制(阻止它们发出跨源请求)的约束。 Postman 是一个浏览器附加组件,可以方便地测试请求,就像在浏览器外部使用以下命令发出请求一样curl或来自命令行的任何内容。 Postman可以自由地发出跨域请求。

https://developer.mozilla.org/docs/Web/HTTP/Access_control_CORS相反,解释了浏览器如何阻止 Web 应用程序发出跨源请求,以及如何通过配置后端发送正确的 CORS 标头来取消阻止浏览器执行此操作。

https://developer.mozilla.org/docs/Web/HTTP/Access_control_CORS#Preflighted_requests解释了浏览器发送该信息的原因OPTIONS请求你的后端需要处理。

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

对预检请求的响应未通过访问控制检查 Laravel 和 Ajax 调用 的相关文章

  • 使用 javascript 将 html 文本渲染为位图,无需服务器端代码

    我需要使用 javascript 代码来转换 html 中的文章 帖子 以便最终用户以位图的形式查看 有没有办法在没有服务器端代码的情况下做到这一点 example p testing text here p 您可以使用例如html2can
  • jQuery id 选择器在有 .在 ID 中[重复]

    这个问题在这里已经有答案了 我的html代码如下 div class chatbox html markup which is validated div 在上面的代码中dipesh parmardiv 动态添加 我正在使用以下代码访问它
  • Child_process 处理带有回车符 (\r) 的 STDOUT 流

    我正在编写一个简单的应用程序 它允许工作中的内部系统请求从远程服务器到使用 REST 调用发起的另一个远程服务器的复制过程 使用 rsync 我已经对express框架足够熟悉 并且刚刚开始尝试child process库 并偶然发现了一个
  • Office excel将CORS请求作为跨域请求

    我正在尝试从我的 Excel 插件发出跨域请求 正如这里所建议的 http dev office com docs add ins develop addressing same origin policy limitations http
  • 使用 jquery 通配符检查 cookie 名称

    我有一个生成动态 cookie 的表单 例如 webform 62 1234356 62 1234356 可以是任意数字 我需要使用一些通配符检查来检查名称以 webform 开头的 cookie 是否存在 下面不起作用 if cookie
  • 嵌套辅助函数和性能

    嵌套辅助函数对于使代码更易于理解非常有用 谷歌甚至建议在他们的应用程序中使用嵌套函数时尚指南 https google styleguide googlecode com svn trunk javascriptguide xml Nest
  • 如何创建自定义元素扩展类的新实例

    我正在尝试以下示例谷歌开发者网站 https developers google com web fundamentals getting started primers customelements extendhtml我收到错误 Typ
  • 监听浏览器宽度以进行响应式网页设计?

    我正在努力使我的网站适合移动设备 我想知道浏览器窗口的大小 以便当它比 728px 窄时我可以执行某些操作 而当它大于 728px 时我可以执行其他操作 这必须考虑到调整 PC 上的窗口大小以及在手机中从纵向模式更改为横向模式 如何才能做到
  • 如何使用JQuery和Django(ajax + HttpResponse)?

    假设我有一个 AJAX 函数 function callpage ajax method get url abc data x 3 beforeSend function success function html IF HTTPRESPO
  • React + Semantic-UI:在 UI MODAL 中使用表单

    在没有 React 的普通旧 Semantic UI 中 我已经能够毫无问题地将表单放入 Modal 中 使用 Semantic UI React 版本 我能够在模态中显示表单 但它并没有按照我期望的方式工作 例如 模态框显示后 模态框内的
  • jQuery 检索和设置 html select 元素的选定选项值

    我正在尝试使用 jQuery 检索并设置选择元素 下拉列表 的选定值 为了检索我已经尝试过 myId find selected val 也 myId val 但两者都返回未定义 任何对此问题的见解将不胜感激 要获取 设置选择元素的实际 s
  • 水平平滑滚动 100px

    Heyjo problem 一周以来我一直在寻找 javascript 或 jQuery 代码 以便在我的网站上实现滚动按钮 我失败的那一刻是按钮应该多次工作的时候 他的任务不是滚动到专用元素 而是应该向左滚动 例如 100px 此外 滚动
  • 通过多个回调优雅地传递“点击事件”

    当未登录的用户单击给定的按钮时 我想停止该事件 收集他的 oauth 收集他的电子邮件 如果我没有 然后执行该事件 我想用 javascript 来做所有事情 因为这会让事情变得更加简单 这就是我执行它的方式 我有两个问题 有没有更优雅的方
  • ExpressJS - DELETE 请求后 res.redirect

    我一直在寻找如何执行此操作 我正在尝试在发出删除请求后重定向 这是我正在使用的代码没有重定向 exports remove function req res var postId req params id Post remove id p
  • 将 jQuery 版本从 1.7.1 升级到 1.11.2

    在我当前的应用程序中 我使用的是 jQuery 版本 1 7 1 现在 我计划将jQuery版本升级到1 11 2 是否有任何补丁可以提供与现有应用程序的向后可比性 Thanks 尝试这个 http blog jquery com 2013
  • Three.js WebGL 从着色器绘制圆形自定义填充和边框颜色

    我将 Three js 与 WebGLRenderer 一起使用 我试图找出或查看如何使用 CircleGeometry 绘制圆圈的示例 并能够从顶点或片段着色器控制其填充和边框颜色 如果不使用图像作为纹理 这是否可能 抱歉 如果这真的很简
  • 允许使用 grunt browserify 进行全局转换

    我已将 jQuery 添加为 html 文件中的脚本标记 并将其添加到package json与一起工作browserify shim如下 browserify transform browserify shim browserify sh
  • 将 div 文本分配给变量然后显示它

    我有一个简单的任务 我试图完成学习 JavaScript 但一直无法找到明确的答案 这是代码 div Testing div 基本上我希望将方框 div 中的文本存储到变量中 然后 我想在页面的不同部分显示该变量的文本 使用上面的代码我得到
  • Nodejs 一个接一个地运行异步函数

    我是 JS nodejs 的新手 所以如果我不能提出切中要害的问题 请原谅我 所以基本上 如果我有两个异步函数 async function init async function main 如何确保在 init 完成其异步请求后调用 ma
  • jqGrid刷新本地数据(JSON对象)

    我正在尝试将 jqGrid 与本地数据一起使用 但发现了几个问题 我正在初始化这样的事情 function refreshGrid grid results grid jqGrid data results datatype local c

随机推荐

  • DENSE_RANK 根据特定顺序

    您好 我有一个数据表 我想根据排序的日期顺序输出从第一组名称开始的名称的密集排名 例如 DROP TABLE MyTable SELECT INTO MyTable FROM VALUES 2015 12 23 ccc 2015 12 21
  • 抑制 Java 中已弃用的导入警告

    在 Java 中 如果导入已弃用的类 import SomeDeprecatedClass 您会收到此警告 The type SomeDeprecatedClass is deprecated 有没有办法抑制这个警告 为了避免警告 做not
  • 如何在express Node js中获取删除请求的参数

    我对nodejs比较陌生 如何获取Delete请求传递的value参数 我正在使用节点express js 感谢advs 您可以使用 req body 来获取您发送的值 eg router delete test function req
  • HTML Canvas - 圆圈周围的虚线描边

    我确实知道在画布上渲染点划线没有原生支持 但我已经看到人们能够为此提供支持的聪明方法 我想知道是否有任何方法可以翻译它以允许在形状 特别是圆形 周围渲染点状笔划 最简单的方法使用context setLineDash ctx setLine
  • nodejs socket.io 无法连接到服务器?

    我整个下午都在盯着node js 和socket io 示例 我正在尝试拼凑一个简单的页面 它会告诉我有多少用户连接到了服务器 我已阅读以下文档http socket io 以及这里的一些教程 问题准确地概述了我正在尝试做的事情 我也发现了
  • 用户看不到 mysql 工作台中的数据库

    我正在尝试使用 Spring Roo 来学习本教程 所以 我所做的是 转到 mysql 工作台 创建一个名为 pizzashop 的新模式 通过服务器管理帐户访问本地主机 在 用户和权限 中创建一个名为 pizzashop 和密码 pizz
  • Scala Spark,列表缓冲区为空

    在注释 1 中的这段代码中 列表缓冲区项的长度正确显示 但在第二条注释中代码永远不会执行 为什么会出现这种情况呢 val conf new SparkConf setAppName app setMaster local val sc ne
  • “ActionView::Template::Error(未预编译)”在“image_tag nil”上引发

    如果我没有正确处理视图 生产环境将显示 500 这可能是 但我有点粗心 好几次都忘记了这个问题 我怎样才能防止这种情况发生 我该如何使用在生产环境中不加500 image tag必须有一个源 Rails 无法对其执行任何操作 但会引发异常
  • Python:将 3D 数组中的值存储到 csv

    我有以下问题 我有一个 3D 数组 例如matrix np zeros 30 30 100 其中每个条目都是一个坐标并获取一个值 所以matrix 0 0 0 是坐标 x 0 y0 z 0 且值为 0 现在我想将所有值存储在 csv 中 如
  • 使用 Django Rest Framework 和 IOS 应用程序时要使用哪种身份验证?

    我有一个 iOS 应用程序 它使用由 Django REST 框架提供支持的 API 来存储 更新 从数据库中获取数据 我需要提供以下两个功能 将用户数据存储在服务器上 使用电子邮件登录 使用 Facebook 登录 我可以使用两种不同的身
  • 如何动态地将内容加载到 JavaFX 选项卡?

    我有一个 GUI 是使用 JavaFX 和 FXML 制作的 该 GUI 有很多组件 但并非一次性需要所有组件 例如 想象一个 GUI 从其服务器部分接收城市列表 每个城市都在其自己的选项卡上进行描述 并用很多节点进行描述 该城市集包含 3
  • iOS 7 应用程序图标、启动图像和命名约定,同时保留 iOS 6 图标

    我刚刚在 iOS 6 上完成了一个应用程序 并在一周前购买了一个开发者帐户 因此没有太多时间使用 iOS 7 SDK 刚刚下载了 Golden Master 版本并尝试升级我的应用程序以与 iOS 7 兼容 我意识到 iOS 7 需要对应用
  • Python 日志记录:disable() 的反向影响

    The 记录文档说调用logging disable lvl 方法可以 暂时限制整个应用程序的日志输出 但我很难找到 暂时 以以下脚本为例 import logging logging disable logging CRITICAL lo
  • ImageView 上的透明视图

    我被堵在那里了 我试图在背景上放置一个透明视图 我尝试了几种方法 通过 XML android background color transparent or android color 80000000 或者像这样引用 color xml
  • C++ 中的大文件支持

    64 位文件 API 在每个平台上都不同 在窗口中 fseeki64在Linux中 fseeko在 freebsd 中 另一个类似的调用 如何才能最有效地使其更加方便和便携 有什么有用的例子吗 大多数基于 POSIX 的平台都支持 FILE
  • 使用 Boost 进行进程间读取器/写入器锁定

    这个线程在解释如何使用 Boost 实现读取器 写入器锁时 它是黄金 它看起来相对简单 我真的很喜欢它 但它似乎也使用了非命名锁 我需要一个进程间解决方案 不需要是可移植的 可以仅适用于 Windows 有没有办法实现进程间shared m
  • 使用 ODATA 过滤 x 和 y 之间的日期

    我正在研究新的 ASP NET Web API 作为报告工具 在 SQL 中我会这样做 WHERE order date BETWEEN to date 2003 01 01 yyyy mm dd AND to date 2003 12 3
  • 什么xsd会让一个元素无限地拥有自己作为子元素?

    我如何创建一个 xsd 来为我提供这种可以无限继续的 xml 结构
  • 以另一个用户身份执行 Oracle 存储过程

    我主要是一个 Oracle 新手 所以请原谅我 如果这是一个愚蠢的问题 我有一个名为 CODE 的模式 其中包含执行任意 SQL 的存储过程 目前 请忽略与之相关的潜在安全问题 传入的SQL会选择数据 但所有数据都驻留在模式 A B 或 C
  • 对预检请求的响应未通过访问控制检查 Laravel 和 Ajax 调用

    我有一个用 Laravel 5 1 制作的 REST api 托管在远程服务器上 现在 我尝试从另一个网站 我在本地 使用该 API 在 Laravel 中 我设置了发送 CORS 标头所需的行 我还使用 Postman 测试了 API 一