我正在将Rails应用程序从Rails 4.1.1
升级到Rails 5.1.4
。
我有2个应用程序,一个是Web应用程序(用于angular
),另一个是API应用程序。
我正在做什么,我正在从Web app(Rails with Angular)
发送请求并从API app
获取数据。但是当我从Web app
发送请求时出现以下错误:
无法加载http://api.myapp:3001/user:对预检的响应 请求不通过访问控制检查:的值 响应中的“Access-Control-Allow-Origin”标头不能是 当请求的凭据模式为“include”时,为通配符'*'。起源 因此,“http://myapp:3000”不允许访问。凭证 XMLHttpRequest发起的请求模式由 withCredentials属性。
http://myapp:3000' -> Web application and request sending to API
http://api.myapp:3001/user -> API application to send response
问题google
之后,我发现了一个名为rack-cors
的宝石。
在Web和API这两个应用程序中,我添加了
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', :headers => :any, :methods => [:get, :post, :options]
end
end
但仍然遇到了问题。请告诉我。
答案 0 :(得分:0)
好消息:
当请求的凭据模式为“include”时,响应中“Access-Control-Allow-Origin”标头的值不能是通配符“*”
似乎您正在从Angular应用程序发送凭据信息,并且该域未列入白名单。您可以尝试进行测试,将withCredentials设置为false,或允许域。
这可以帮助您:http://50linesofco.de/post/2017-03-06-cors-a-guided-tour