我試圖開始使用Ember Data,並立即遇到了這個問題,瀏覽器在實際請求之前發送了OPTIONS請求。如何避免「預檢請求」?
我試圖與之交流的開發後端是在本地機器上運行的rails 4.2服務器(從rails s -b 0.0.0.0
開始) 我目前使用此api從android和ios應用程序進行通信。我的最終目標是除了現有的導軌UI之外還提供一個Ember應用程序,但是如果我必須替換它並且只有Ember UI,那就沒問題了。
我在CORS上做了一些閱讀,我想至少明白它想做什麼。如果我理解正確,那麼瀏覽器會將Ember應用程序看作是由服務器以外的服務器提供服務的服務器,並且因爲這會詢問服務器是否正常。
所以我的問題是:
- 請問我能不能到我的灰燼應用程序部署到真實服務器,從而不需要這些CORS OPTIONS請求? (即,我假設一個Rails應用程序可以向瀏覽器提供一個Ember應用程序,並且瀏覽器將看到該腳本的來源與請求的目標相同,並且不需要預演請求)
- 我該如何獲得這在發展中工作?我發現在ember s --proxy上有一個--proxy選項,它看起來應該是這個解決方案,但我一直無法使它工作
當我導航服務器URL我試圖訪問http://localhost:3000/api/v1/users
軌道記錄了以下回應:
Started GET "/api/v1/users" for 127.0.0.1 at 2016-04-17 10:02:01 -0400
在此基礎上,我想我有我的灰燼適配器設置正確:
import JSONAdapter from 'ember-data/adapters/json-api';
export default JSONAdapter.extend({
host: 'http://127.0.0.1:3000',
namespace: 'api/v1'
});
然後我開始灰燼服務器使用此命令:
ember s --proxy http://127.0.0.1:3000
軌道服務器接收以下請求:
Started OPTIONS "/api/v1/users" for 127.0.0.1 at 2016-04-17 09:36:51 -0400
,因爲我沒有爲路線(別以爲我想要麼)未有。