【问题标题】:Method PUT is not allowed by Access-Control-Allow-MethodsAccess-Control-Allow-Methods 不允许方法 PUT
【发布时间】:2015-01-28 18:30:19
【问题描述】:

使用 ajax 编辑帖子时,我在浏览器中遇到错误。 XMLHttpRequest 无法加载 http://example.com/posts/100。 Access-Control-Allow-Methods 不允许方法 PUT。

在 Rails 服务器中:

  Started OPTIONS "/posts/100" for 127.0.0.1 at 2014-11-14 11:51:39 -0800
  Processing by ApplicationController#handle_options_request as */*
  Parameters: {"path"=>"posts/100"}

我经历了几个解决方案并做了这样的事情 在 rotues.rb 中:

   match '*path', :controller => 'application', :action => 'handle_options_request', :constraints => {:method => 'OPTIONS'}

在 application_controller.rb 中

  def handle_options_request
    headers['Access-Control-Allow-Origin'] = request.env['HTTP_ORIGIN']
    headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
    headers['Access-Control-Max-Age'] = '1000'
    headers['Access-Control-Allow-Headers'] = '*,x-requested-with'
    head(:ok) if request.request_method == "OPTIONS"
  end

任何人都有解决它的方法。也可以试试 rack-cors,但它不起作用

【问题讨论】:

    标签: ruby-on-rails ruby ajax cross-domain-policy


    【解决方案1】:

    尝试将此行更改为(添加 PUT):

    headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS, PUT'
    

    【讨论】:

      猜你喜欢
      • 2019-09-29
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 2016-05-25
      • 2013-12-14
      • 2017-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多