跨域 AJAX 预检失败来源检查

2023-11-24

这似乎不起作用:

$.ajax({
    url:      "http://localhost:3000/foo.json",
    data:     { foo: 'bar' },
    headers:  { 'HTTP_X_CUSTOMHEADER': 'foobar' },
    xhrFields: { withCredentials: true }
});

当我在 jsfiddle 上运行它时,OPTIONS请求(根据 Chrome 调试工具)触发如下所示:

Access-Control-Request-Headers: Origin, HTTP_X_CUSTOMHEADER, Accept
Access-Control-Request-Method:  GET
Origin:                         http://fiddle.jshell.net

然后(根据 Chrome 调试工具)我的本地服务器返回以下标头:

(为了可读性手动重新格式化)

Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers:     HTTP_X_CUSTOMHEADER
Access-Control-Allow-Methods:     GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin:      http://fiddle.jshell.net
Access-Control-Max-Age:           10

Cache-Control:                    no-cache
Connection:                       Keep-Alive
Content-Length:                   1
Content-Type:                     text/html; charset=utf-8
Date:                             Wed, 14 Sep 2011 22:42:28 GMT
Server:                           WEBrick/1.3.1 (Ruby/1.8.7/2010-01-10)
X-Runtime:                        2

然后在控制台中我收到如下错误消息:

XMLHttpRequest cannot load http://localhost:3000/foo.json?foo=bar.
Origin http://fiddle.jshell.net is not allowed by Access-Control-Allow-Origin.

But the Access-Control-Allow-Origin标头看起来与我的服务器响应预检请求时相同。那么我在这个拼图中缺少哪一块呢?


呵呵,好吧,我终于明白了……

显然是起飞前OPTIONS响应标头并不是唯一需要它们的地方。您还需要在实际内容的响应中包含这些标头。我只在飞行前才看到这些标题,认为这是唯一需要的“票”。

因此,我将相同的标头添加到实际资产的 GET 请求中,现在一切正常。我想我在文档中错过了这一点。

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

跨域 AJAX 预检失败来源检查 的相关文章

随机推荐

  • 是否有不需要空终止字符串的 strtol 等效项?

    是否有类似于 strtol 的标准 C 函数 它将采用 char 和非空终止字符串的长度 我知道我可以将字符串复制到空终止区域 但出于效率原因 这是不可取的 标准库中没有这样的函数 您要么必须使用临时缓冲区方法 要么从头开始编写自己的函数
  • Python导入csv到列表[重复]

    这个问题在这里已经有答案了 我有一个包含大约 2000 条记录的 CSV 文件 每条记录都有一个字符串和一个类别 This is the first line Line1 This is the second line Line2 This
  • iOS 版 Google 地图,swift - 如何显示标记之间的整个折线?

    我正在尝试在谷歌地图视图中拟合一条折线 折线是通过谷歌地图方向API中的overview polyline获取的 想知道如何将编码的折线转换为可以使用的东西 我需要使折线适合地图视图 我发现要做的就是适应边界以显示所有标记 但不显示整个折线
  • 将代码与两个 subversion 存储库同步

    首先介绍一下背景 我正在使用来自远程 SVN 存储库的 基本 代码 不受我的控制 代码还没有标记 所以我总是需要跟上主干 由于多种原因 最重要的是我们对代码的本地扩展具有 利基 性质 并且旨在解决使用代码的项目的特定问题 我无法使用远程存储
  • Kafka I/O 错误 java.io.EOFException: null

    我正在使用 Kafka 0 8 2 0 Scala 2 10 在我的日志文件中 我间歇性地看到以下消息 这似乎是一个连接问题 但我正在本地主机中运行这两个问题 这是无害的警告消息还是我应该采取措施来避免它 2015 10 30 14 12
  • 从图表系列获取主题颜色信息

    我有一个使用一种颜色的图表系列 它可以是msoThemeColorAccent lt gt 或任何其他 用于标记线 另一种颜色用于标记填充 可以是msoThemeColorAccent lt gt 打火机 x 或任何其他 并且没有线条 我想
  • find 命令查找文件并将它们连接起来

    我正在尝试查找所有类型的文件 gz and cat他们到total gz我想我已经很接近这一点了 这是我用来列出所有的命令 gzfiles find home downloaded maxdepth 3 type d name exec b
  • Toast:在 Android 中集成 Google Plus 时发生内部错误

    我正在将 Google Plus 集成到我的 Android 应用程序中 我已经在 Google API 控制台中创建了该项目 我创建了 OAuth 客户端 ID 并仔细检查了包名称和密钥库 SHA1 但两者都是正确的 但我仍然得到Inte
  • Quartz 中每 50 秒执行一次 Cron 表达式

    我每 50 秒使用 Quartz 和 cron 表达式运行我的作业 Cron Expression 0 50 发生的情况是我的工作以秒为单位运行 50 60 50 60 而且不是每 50 秒一次 并且不在第二个 0 处运行 从 0 开始每
  • 获取 JSON 对象的大小

    我有一个由 AJAX 请求返回的 JSON 对象 但我遇到了一些问题 length因为它不断返回undefined 只是想知道我是否正确使用它 console log data length console log data phones
  • Apache Velocity:是否有一种标准方法可以从命令行验证模板的正确性?

    我们的网站使用阿帕奇速度模板语言 我们的内容管理系统已经检查所有生成的 XML 文档的格式是否良好 我们被要求在将文件推送到实时站点之前检查文档以捕获 Velocity 语法错误 是否有一种标准方法可以从命令行验证 Velocity 模板的
  • 损失与准确率之间的关系

    在训练 CNN 模型时 实际上有可能在每个时期减少损失并降低准确度吗 我在训练时得到以下结果 有人可以解释发生这种情况的可能原因吗 至少有 5 个原因可能导致此类行为 异常值 假设您有 10 张完全相同的图像 其中 9 张属于类别A一个属于
  • 所有 Python 类都应该扩展对象吗? [复制]

    这个问题在这里已经有答案了 我发现以下两项都有效 class Foo def a self print hello class Foo object def a self print hello 所有 Python 类都应该扩展对象吗 不扩
  • 传递给宏的变量在错误的命名空间中解析?

    The Noir macro defpage给我带来了一点麻烦 我正在尝试构建与此类似的调用 defpage post some url data some stuff 但是 不要使用关键字 post我想使用一个变量 如下所示 def my
  • 存储过程版本控制

    如何管理存储过程的修订 我们在 SQL Server 2005 上有一个 BI 解决方案 包含数百个存储过程 将这些内容导入 Subversion 的好方法是什么 您推荐使用哪些工具将存储过程编写为文件 毫无疑问 您可以购买许多现成的产品
  • HTTP 重定向绑定 SAML 请求

    假设执行 SP init SSO 使用 HTTP Redirect Binding 而不是 HTTP POST Binding 并且需要签名的 AuthnRequest 这意味着在 URL 中包含 SAMLRequest Q1 我需要在 U
  • 目录在 github 上显示为灰色文件夹,但不跟踪其内容。为什么?

    我有一个目录 ui kit 它在 github 上显示为灰色文件夹 它不可点击 这是 gitignore的全部内容 Fleetwit docs uploads env prj pui Logs logs log Node node modu
  • R 中“str”报告的第二列是什么?该列中的“atomic”是什么意思?

    Using str survey OM 我的数据框上表明我的所有数值数据都是atomic 如果我使用class survey OM perc OM 它返回numeric 我一直以为第二栏str显示了数据的类别 但看起来并不那么简单 所以我的
  • 如何设置windbg自动下载所有符号?

    一般来说 我对编程和调试很陌生 我花了很多时间离线 没有互联网 并且正在阅读 Windows 调试内部 一书 但时不时地 我发现自己需要一个 pdb 文件 我做了一些挖掘 发现了这个网址 http msdn microsoft com en
  • 跨域 AJAX 预检失败来源检查

    这似乎不起作用 ajax url http localhost 3000 foo json data foo bar headers HTTP X CUSTOMHEADER foobar xhrFields withCredentials