2016-07-31 112 views
1

在服務器端我使用Rails。目的是,我沒有配置CORS。因此,正如我所料,在瀏覽器中,我不能做的請求到Rails的服務器,因爲我得到這個錯誤:由於什麼原因,我可以通過curl訪問資源,但不能在瀏覽器中訪問?

enter image description here

但我可以爲終端做,使用curl:

[email protected] ~ $ curl http://localhost:3000/people 
[{"id":3,"name":"macabeus","age":20,"created_at":"2016-07-31T22:45:05.490Z","updated_at":"2016-07-31T22:45:05.490Z"},{"id":4,"name":"foo","age":10,"created_at":"2016-07-31T22:45:24.415Z","updated_at":"2016-07-31T22:45:24.415Z"}] 

由於什麼原因捲曲可以,但瀏覽器不能?我知道如何解決這個問題。我只是想了解我之前問過的。

回答

4

區別在於是否在請求中發送標頭Origin: http://...curl默認情況下不運行curl-i選項發送任何額外的頭,你可以確認:

$ curl -i -H 'Origin: http://localhost:63343' http://localhost:3000/people 

$ curl -i http://localhost:3000/people 

如果您在Origin頭與象請求一起發送任意值

您應該看到與瀏覽器中相同的CORS錯誤。

其原因在於如果請求是CORS一個,即來自不同的站點,並且取決於服務器端的配置,則標頭Origin不會觸發Origin頭可能意味着它來自相同的來源。

相關問題