Ember App Kit + RESTAdapter + PHP - PUT请求失败

时间:2014-04-28 11:55:37

标签: php symfony ember.js

我正在使用Ember App套件和Ember Data与服务器进行通信,直到现在一切都运行良好,我设法使用RESTAdapter创建模型并检索数据。

我使用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开始,我的服务于PHP的apache在端口80上运行。

我可以使用grunt将Ember App Kit的生成结果复制+粘贴到与apache相同的域中,但如果有更好的解决方案,我会徘徊。

1 个答案:

答案 0 :(得分: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文件中路由的参数:

routing.yml中的路由器示例:

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