簡體   English   中英

Rails API后端中沒有“ Access-Control-Allow-Origin”標頭

[英]No 'Access-Control-Allow-Origin' header is present in Rails API backend

我在Rails中有一個jsonapi-resources后端api。 我可以使用curl和Python來請求數據。

當我嘗試使用jQuery進行請求時,在瀏覽器中出現以下錯誤:

XMLHttpRequest無法加載https://shop-api-3.herokuapp.com/customers?filter%5Bshop_token%5D=9e3c9769b752436ddbd27597cf946a36 對預檢請求的響應未通過訪問控制檢查:請求的資源上不存在“ Access-Control-Allow-Origin”標頭。 因此,不允許訪問原始“空”。 響應的HTTP狀態碼為404。

所以我將其添加到config/environments/production.rb

  config.action_dispatch.default_headers = {
      'Access-Control-Allow-Headers' => 'Origin, X-Requested-With, Content-Type, Accept, Authorization',
      'Access-Control-Allow-Origin' => '*',
      'Access-Control-Request-Method' => '*',
      'X-Frame-Options' => 'ALLOWALL'
    }

但是,我仍然遇到相同的錯誤。 我想念什么?

FWIW,這是我的curl命令:

curl -i -H "Accept: application/vnd.api+json" "https://app.herokuapp.com/retentions?filter%5Bshop_token%

5D = ABC123“

使用Rails 4

一個月前我也遇到過同樣的問題,在閱讀了許多博客文章后,我通過...解決了這個問題

因此,似乎您是在使用jquery(從瀏覽器)在另一台服務器上請求api令牌,而不是這樣做,從您的服務器上請求它,然后將其傳遞給客戶端,然后您就可以做任何您想做的事情,這應該可以解決問題。

我對CORS的理解是,您無法將瀏覽器執行到服務器,而必須從服務器(您的域)到服務器(您正在訪問的api)執行。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM