2014-04-28 80 views
2

我使用Ember App Kit和Ember Data與服務器進行通信,直到現在一切正常,我設法創建模型並使用RESTAdapter檢索數據。Ember App Kit + RESTAdapter + PHP - PUT請求失敗

我使用Symfony2實現了JSON API。

但是現在,當我想將編輯的數據保存到服務器,並且在模型上調用save()方法時,它向服務器發送OPTIONS請求,但XMLHttpRequest無法加載http://myservice.ge/customers/1。 Access-Control-Allow-Methods不允許方法PUT。

我知道你不能從瀏覽器發送PUT請求到其他域,我不問如何去做。

我的問題是我該如何使用Ember App Kit以及它的功能,並且在同一個域上有服務和前臺應用程序?當我用grunt啓動Ember App Kit時,它開始於端口8000,我的apache服務於PHP,運行在端口80上。

我可以試着複製粘貼Ember App Kit的生成結果到apache使用grunt的同一個域,但是我如果有更好的解決方案,就會徘徊。

回答

0

也許這不是最好的方式來做到這一點,但它爲我工作。

該解決方案適用於symfony2,但相同的邏輯可以在任何地方工作。

我只是說這app_dev.php(或任何你的應用程序的入口點):

header('Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS'); 
header('Access-Control-Allow-Headers: content-type '); 
header('Access-Control-Allow-Headers: accept, content-type '); 

現在,如果你正在使用的Symfony2你要「方法」參數添加到您的routing.yml路線文件:

user_update: 
    pattern: /users/{id} 
    defaults: { _controller: YourBundle:User:update } 
    methods: [PUT, OPTIONS] 

在routing.yml中路由器實施例