2016-09-30 42 views
0

我有兩個環網站:mysite.comapi.mysite.comapi.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]))) 

當我做了GETPOST請求時,預檢成功,但GETPOST失敗:阻止

跨來源請求:同源策略不允許在http://api.site.com/v1/site處讀取 遠程資源。 (原因:缺少CORS 頭'Access-Control-Allow-Origin')。

我可以在Access-Control-Allow-Origin被包括在響應OPTIONS但不是在後續GETPOST響應調試器看到。

任何想法是什麼?我的應用程序有點複雜,並且還有bidi,liberator和一些hosts文件和nginx事情正在進行。我認爲這些可以暫時擱置,而這個問題可能會導致中間件或中間件配置出現問題。

回答

0

我不確定您可以在子域上使用通配符。有關更多詳細信息,請參閱this SO answer。看起來像the spec需要域名或通配符,但不是兩者都需要。

你可能會嘗試添加你的域名,看看這是否解決了問題,然後從那裏去。

wrap-cors :access-control-allow-origin [#"http://sitename.com"] 
+0

它看起來像'ring-cors'匹配給定的正則表達式,並匹配時將原點與'access-control-allow-origin'頭相關聯。所以沒有,這似乎不是答案。 – deadghost