2017-08-14 133 views
0

My Ember應用程序在本地計算機上運行良好。我可以從另一臺電腦加載Ember頁面,並使用瀏覽器(例如here)單獨加載後端數據,但Ember不能;它表示ERR_CONNECTION_REFUSED並且不檢索數據來填充列表/下拉菜單/等。設置服務器訪問端口? CORS?

最初,即使在本地,我也遇到了很多PUT消息的麻煩,並且最終建立了CORS規則來嘗試啓用所有功能,但即使這樣也無濟於事。

發生了什麼事?爲什麼Ember無法獲取在另一個選項卡中的相同瀏覽器沒有問題的數據?

+2

你可以看看你的瀏覽器的開發工具中的網絡標籤,看看請求的去向嗎? – aalimovs

回答

1

這不是Ember無法獲取數據。它的瀏覽器不允許向其他域發送請求。不是所有的請求,但。一些「簡單」(限於GET,HEAD和POST方法以及一小部分允許的頭文件)請求可以工作。 MDN has a big article about CORS。爲了解決這個問題,你的後臺應該接受OPTIONS方法,包括下列頭的對策:

Access-Control-Allow-Origin: http://frontend.domain 
Access-Control-Allow-Methods: POST, GET, OPTIONS 
Access-Control-Allow-Headers: * 
Access-Control-Max-Age: 86400 

取決於語言/框架,您使用的後臺開發,你可以找到庫/插件/插件,幫助管理CORS頭文件。我建議使用這些。

0

Oooh對我來說是愚蠢的......我開始的教程(讓我能夠路由到REST子路線)在127.0.0.1的application.js中有一個主機重寫,這不起作用非本地主機當然。

這是一件要檢查的事情:app/adapter/application.js是否有「主機」條目,它是什麼?