为什么我的 HTTP Origin 标头与 request.base_url 不匹配以及如何修复?

2023-11-24

你好,这是我在这里的第一篇文章!

我已经尝试调试这个问题几天了,但无法弄清楚。 当我向 Rails api 发出发布请求时,我收到了以前从未见过的错误:

Started POST "/owners" for ::1 at 2021-01-12 11:24:15 -0500
   (1.0ms)  SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
Processing by OwnersController#create as */*
  Parameters: {"email"=>"adam", "password"=>"[FILTERED]", "owner"=>{"email"=>"adam"}}
HTTP Origin header (http://localhost:3000) didn't match request.base_url (http://localhost:3001)
Completed 422 Unprocessable Entity in 0ms (ActiveRecord: 1.8ms | Allocations: 476)


  
ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):

就像我说的,我以前从未见过这种情况,我不知道我是如何造成它的。我没有使用代理服务器,我在这个项目中尝试的唯一可能搞砸的新事情是我安装了 devise gem,但决定不使用它并删除它。

我尝试过的事情:

确保我没有待处理的迁移:

检查我的路线:

Rails.application.routes.draw do
  resources :owners
  resources :dogs
  post 'login', to: 'sessions#create'
end

然后我认为这可能是一个cors问题:

require_relative 'boot'

require 'rails/all'

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)

module Backend
  class Application < Rails::Application
    # Initialize configuration defaults for originally generated Rails version.
    config.load_defaults 6.0

    # Settings in config/environments/* take precedence over those specified here.
    # Application configuration can go into files in config/initializers
    # -- all .rb files in that directory are automatically loaded after loading
    # the framework and any gems in your application.
    config.api_only = true

    config.middleware.insert_before 0, Rack::Cors do
      allow do
        origins '*'
        resource(
          '*',
          headers: :any,
          methods: [:get, :patch, :put, :delete, :post, :options, :head]
          )
      end
    end

  end
end

然后我尝试在谷歌上搜索有关无效真实性令牌和http原始标头的内容,但找不到有用的解决方案或我可以理解的解决方案。

(最后一点:我尝试将其从发布请求更改为获取请求,它有效,但发布会导致错误)

感谢您提前提供任何建议


就我而言,问题出在虚拟主机的 Nginx 设置上。 在以下位置找到了答案:https://github.com/rails/rails/issues/22965#issuecomment-169956605

通过在 Nginx 中添加更多标头(X-Forwarded-Ssl on、X-Forwarded-Port 443 和 X-Forwarded-Host 主机名)进行修复

这是编辑后该部分的样子:

    location @app {
      proxy_pass http://app;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto https;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header Host $http_host;
      proxy_redirect off;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的 HTTP Origin 标头与 request.base_url 不匹配以及如何修复? 的相关文章

  • gets、gets.chomp 和 gets.chomp 之间的区别!?

    这三者有什么区别 gets 它得到一行带有 n gets chomp 它得到一行 但删除 n 那是对的吗 关于什么gets chomp gets http www ruby doc org core 2 1 0 Kernel html me
  • Mongoid - 同一外域的两个域的逆

    我试图让以下 Mongoid 关系发挥作用 但每个团队的游戏字段都是一个空数组 这不是一个有效的关系模型吗 我是否需要分开比赛 即主场比赛和客场比赛 class Team include Mongoid Document has many
  • 我的整个 Rails 应用程序仅从一个文件获取 css 为什么

    我为两个控制器添加了不同的 css 文件 但我的整个应用程序仅从product css 我为两个控制器添加了不同的 css 文件 但我的整个应用程序仅从product css我为两个控制器添加了不同的 css 文件 但我的整个应用程序仅从p
  • 获取块参数个数

    我需要获取给定块所采用的参数数量 例如 foobar 1 2 3 a b c def foobar x y z block need to obtain number of arguments in block which would be
  • 自动测试无限循环

    我在 Rails 项目中使用自动测试时遇到了一个问题 即当测试失败时 即 我修改了测试文件并且自动测试自动运行测试 自动测试会不断尝试运行测试 当然每次都会失败 因为文件尚未被修改 而不是等到文件再次保存 当咆哮通知打开时 当我试图修复代码
  • ASP.NET Core URL 重写

    我正在尝试将我的网站从 www 重定向到非 www 规则以及 http 到 https https example com https example com 在中间件中 我曾经在 web config 中进行这些重定向更改 例如
  • Mongoid 中的 find_or_create_by 线程安全吗?

    我有一个使用 Mongoid 的 find or create by 方法的网络应用程序 poll Poll find or create by fields 在投入生产之前 我尝试运行故障场景 我发现多个用户可以尝试使用此方法访问此资源
  • HttpWebRequest vs Webclient(特殊场景)

    我知道这个问题之前已经回答过thread https stackoverflow com questions 1694388 webclient vs httpwebrequest httpwebresponse 但我似乎找不到详细信息 在
  • 如何在 Rails 3.2.1 版本中注释 Rails 模型

    我正在尝试遵循一些在线教程来在 Rails 中注释我的模型 然而 似乎所有教程都在谈论过时的注释版本或不正确的安装 这真是一团糟 到目前为止我已经尝试过以下方法 1 在 Gemfile 中添加此内容 gem annotate 2 4 0 2
  • 忽略 git 中的本地配置文件

    Rails 应用程序中有一些本地文件 属于我们存储库的一部分 我希望 git 忽略它们 基本上 我希望 git 忽略我对 config environments 目录和 config application rb 文件中的任何内容所做的所有
  • “没有可用的二元红宝石”是什么意思?

    每当我使用rvm install x x x 即使安装成功 我也会收到此警告 No binary rubies available for osx 10 12 x86 64 ruby 2 4 0 Continuing with compil
  • 从 url 导入 CSV Errno::ENAMETOOLONG: 文件名太长

    我正在尝试从 url 导入 CSV 文件 但我得到了Errno ENAMETOOLONG file name too long 我按如下方式处理该文件 require open uri url http de65 grepolis com
  • 在java中轮询Http服务器(重复发送http get请求)

    当对其进行 REST 调用时 我的 Web 服务器会发送一些信息 我想不断轮询该服务器 间隔5秒后重复发送HTTP GET请求 以检查返回的信息是否有任何变化 做到这一点最有效的方法是什么 您能提供一些代码示例吗 请注意 我只想开发客户端代
  • Rails:CSRF 令牌不工作但已设置

    我在 Heroku 上有我的 Rails 3 应用程序 当我发送银行信息时 我得到 WARNING Can t verify CSRF token authenticity但我的 CSRF 令牌已设置 https gist github c
  • 404 标头 - HTTP 1.0 还是 1.1?

    为什么我能找到的几乎每个例子 包括这个问题 https stackoverflow com questions 437256 sending a 404 error in php大约一年前 说 404 标头应该是HTTP 1 0 404 N
  • 如何转义角度 HttpParams?

    在 Angular 服务中 我使用 HttpParams 将字符串发送到服务 get phone string Observable
  • 将 Rails 变量传递给液体可以在控制台中工作,但不在视图中

    我想将哈希传递给渲染方法 当我这样做时 在我的控制台中一切正常 object Object find params id hash object object to liquid template Liquid Template parse
  • 如何计算带有偏移量的异或?

    我想用不同的偏移量进行异或计算以在计算中列出 例子 key 0 1 0 text 0 1 0 1 0 1 0 1 1 1 异或计算 key 0 text 0 key 1 text 1 key 2 text 2 key 0 text 3 ke
  • 在我的 ramaz 应用程序上显示 £ 符号时,我收到“不兼容的字符编码:CP850 和 UTF-8”

    显示时收到 不兼容的字符编码 CP850 和 UTF 8 我的 ramaz 应用程序上的符号 我怎样才能摆脱这个错误 我的 head 标签中有 UTF 8 元标签 当我输入 用键盘输入符号 看 我已将以下代码放入我的 ruby 文件中 但它
  • Rails 3 + angularjs + 缩小在生产中不起作用:未知提供者:eProvider

    我已遵循我能找到的所有修复缩小的说明 例如 var MyController function renamed scope renamedGreeter MyController inject scope greeter and someM

随机推荐

  • 类型错误:db.collection 不是函数

    我正在尝试将数据发布到我在 mLab 上创建的数据库 但收到此错误 但我不知道出了什么问题 我还阅读了之前关于此主题提出的问题 但我无法解决我的错误 因为我是新来的 所以在这里我发布了我试图实现的代码 它取自本教程https medium
  • NHibernate 在二次更新中设置外键,而不是在初始插入时设置外键,违反了键列上的非空约束

    我对一个相当简单 我认为 的 NHibernate 用例有疑问 我有一个经典的父实体和子实体 如下所示 public class Parent public virtual int ParentId get set public virtu
  • 使用 Django 1.5 和 IPython 获取 NameError

    我正在运行 Django 1 5 1 Python 2 7 2 和 IPython 0 13 2 如果我在 Django 项目目录中执行 python manage py shell 则会收到以下错误 from django import
  • 为什么 List 不是 IEnumerable

    编辑 我很抱歉 最初的问题措辞含糊不清 我没有得到我正在寻找的答复 对于任何继承自类 Y 的类 X new List
  • 在C中使用宏定义数据结构

    我试图理解使用宏定义数据结构操作的概念 以下代码是使用 FreeBSD 中内置列表库的简单示例 在库中 所有操作都定义为宏 我也在其他几个库中看到了这种方法 我可以看到这有一些优点 例如 能够使用任何数据结构作为列表中的元素 但我不太明白这
  • ES6 - 在类中调用静态方法

    我有这个类 它对静态方法进行内部调用 export class GeneralHelper extends BaseHelper static is env return config get env name env static isP
  • 利用多核的单线程程序

    Java程序的单线程可以自动使用CPU上的多个核心吗 Java程序的单线程可以自动使用CPU上的多个核心吗 是和不是 单线程Java程序将使用多个线程 因为GC JMX 终结器和其他后台线程可以在不同的CPU 无论是CPU还是核心 中运行
  • Javascript:自己的键函数中的对象文字引用而不是“this”

    在作为该文字一部分的函数中引用对象文字是否有问题 它似乎工作得很好 但我想确保没有其他影响 这是我正在谈论的一个例子 代替 var obj key1 it key2 function return this key1 works alert
  • JQuery 获取以字符串“whatever-”开头的元素类名的其余部分

    我有 js 缓存名称以 whatever 开头的类 class whatever class whatever 但我现在想做的是获取名称的其余部分 例如 在 whatever 9 的情况下 我想获取 9 我不知道该怎么做 你能帮助我吗 Tr
  • 如何在Expression.Or中设置2个以上的Expression

    我想创建一个包含超过 3 4 个表达式的查询 或者 但是表达式 或者只是让我在其中添加两个表达式 if string IsNullOrEmpty keyword query Add Expression Or Expression Like
  • Div 高度不会调整以适应内容

    如何使 div 水平和垂直居中并调整高度以适应内容 fiddle 这是我的 html 代码 div class sprite div div class content span close span div class centered
  • 在Qt中添加自定义字体

    有没有办法向 Qt 添加自定义字体 例如 Console Font 如何 我们如何将其设置为文本编辑器 QPlainTextEdit QTextEdit 等 Thanks Qt 使用您的窗口系统作为字体提供程序 您可以使用以下命令找到所有可
  • 如何从discord.py 中的文本通道获取所有消息的数组?

    我有频道对象 并且我已经尝试过 mess channel history limit 200 but mess is a HistoryIterator对象并且其内不包含任何消息mess messages对象 大小 0 频道中有消息 所以不
  • 如何获取BitBucket分支url?

    我有一个 bitbucket 存储库 我知道我可以单击 操作 选项卡 然后单击 克隆 以获取存储库的 http url 现在 我在存储库中有多个分支 并且我计划使用 Jenkins CI 从特定分支进行构建 有没有办法获取我的存储库中特定分
  • 如何将 powerpivot 数据作为表格复制到 Excel 工作簿中?

    我在 powerpivot 中有已修改的数据 我想将其作为常规表 而不是数据透视表 放入工作簿中 我需要这个 以便我可以使用该表来运行同一工作簿中另一个工作表中的一些 vlookups 我找到了这个答案 link我将尝试进行总结 而不会进行
  • JQuery 数据表行高

    我有一个页面 人们可以输入名字 姓氏 电话 电子邮件和种族 然后单击 添加 它会在数据表中添加一个条目 问题是点击添加后表格显示如下 如何调整每行的高度以使其正确显示 这是我的表的 html 代码 div div
  • 如何更改 JSF 2.0 中的语言环境?

    在我的应用程序中 用户应该能够切换区域设置 用于在页面上呈现文本的语言 大量教程都在使用 FacesContext getCurrentInstance getViewRoot setLocale 例如 http www mkyong co
  • Ionic 启动器无法在 crosswalk-lite 上运行:无法启动活动 ComponentInfo

    我正在使用 crosswalk lite 启动 ionic 应用程序 但它无法在真实设备和 genymotion 上运行 ionic start myApp tabs npm install bower install ionic serv
  • 查找小于其右侧某个元素的每个元素

    我需要找到一个向量中小于其后的多个元素之一的元素 在循环中很容易做到 x some vector values for m 1 length x if any x m 1 end gt x m do such and such end en
  • 为什么我的 HTTP Origin 标头与 request.base_url 不匹配以及如何修复?

    你好 这是我在这里的第一篇文章 我已经尝试调试这个问题几天了 但无法弄清楚 当我向 Rails api 发出发布请求时 我收到了以前从未见过的错误 Started POST owners for 1 at 2021 01 12 11 24