请求启用环网失败
问题描述:
我有两个环网站:mysite.com
和api.mysite.com
。 api.mysite.com
启用了ring-cors
中间件:请求启用环网失败
(def app
(-> (make-handler v1-routes)
(wrap-defaults api-defaults)
(wrap-cors :access-control-allow-origin [#".*"]
:access-control-allow-headers ["Content-Type"]
:access-control-allow-methods [:get :put :post :delete :options])))
当我做了GET
或POST
请求时,预检成功,但GET
或POST
失败:阻止
跨来源请求:同源策略不允许在http://api.site.com/v1/site处读取 远程资源。 (原因:缺少CORS 头'Access-Control-Allow-Origin')。
我可以在Access-Control-Allow-Origin
被包括在响应OPTIONS
但不是在后续GET
或POST
响应调试器看到。
任何想法是什么?我的应用程序有点复杂,并且还有bidi
,liberator
和一些hosts
文件和nginx
事情正在进行。我认为这些可以暂时搁置,而这个问题可能会导致中间件或中间件配置出现问题。
答
我不确定您可以在子域上使用通配符。有关更多详细信息,请参阅this SO answer。看起来像the spec需要域名或通配符,但不是两者都需要。
你可能会尝试添加你的域名,看看这是否解决了问题,然后从那里去。
wrap-cors :access-control-allow-origin [#"http://sitename.com"]
它看起来像'ring-cors'匹配给定的正则表达式,并匹配时将原点与'access-control-allow-origin'头相关联。所以没有,这似乎不是答案。 – deadghost