2014-04-28 48 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中路由器实施例