gpt4 book ai didi

javascript - 如何让 Rails 3.1 不将 X-CSRF-Token 添加到我发送给第三方的 JSONP 请求中?

转载 作者:行者123 更新时间:2023-11-30 18:43:52 25 4
gpt4 key购买 nike

我正在使用第三方 JavaScript 客户端库,该库使用 jQuery 发送 JSONP 请求。这些请求被标记为 X-CSRF-Token,但谷歌浏览器阻止了它们,说

XMLHttpRequest 无法加载 [...]。 Access-Control-Allow-Headers 不允许请求 header 字段 X-CSRF-Token。

如何让 Rails 3.1 不将 X-CSRF-Token 添加到我发送给第三方的请求中?

最佳答案

我刚遇到这个问题。这个bug实际上在jquery-rails的当前开发版本中已经修复。

那里发生的事情是由于CSRFProtect function rails helpers 的一部分,它会将该 header 添加到每个 ajax 请求中,但它对跨域没有意义。从 jQuery 1.5 开始,您可以在 ajax 配置中添加一个 crossDomain 选项来强制将请求视为跨域,而当前版本的 jquery-rails 修复了这个问题 here .

现在,有两种方法可以设置 crossDomain 选项:

  • 如果您正在构建表单或链接,您可以分别添加 :html => {'data-cross-domain' => true}'data-跨域' => true (cf. the source )
  • 如果您使用的是原始 $.ajax 函数,请记住将 crossDomain: true 添加到选项中。

TL;DR 升级到 jquery_rails 的最新版本(即 github 中的当前开发版本)并记住 crossDomain 选项。

关于javascript - 如何让 Rails 3.1 不将 X-CSRF-Token 添加到我发送给第三方的 JSONP 请求中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6049626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com