ajax请求发出去以后后端没有日志,也没有走到断点
欢迎转载,请支持原创,保留原文链接:blog.ilibrary.me
在调试一个ajax请求的时候发现put
, delete
方法不工作。chrome后台调试发现请求是发出去了的。
但是在后端没有任何日志,也没有任何断点断上,好像没有没有发生请求一样,但是chrome明明是发了请求的。陷入迷之困境出不来。
偶然发现get api每次会发两个请求,第一个是options
, 第二个才是get
。才想起我的ajax是有跨域的(port不一样), 每次跨域请求出去之前会先发一个options请求给服务器,看服务器是否支持跨域,是否支持对应的方法。
我用了gem rack-cors
做跨域请求支持,解决方法就是修改config/application.rb
, Rack::Cors部分修改如下:
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', headers: :any, methods: [:get, :post, :put, :delete, :patch, :options] # 重点在这里,把支持的methods都加上
end
end if Rails.env.development?
重启服务器,问题解决!