2014-04-28 1 views
2

Я использую Ember App kit и Ember Data для связи с сервером, до сих пор все отлично работало, мне удалось создать модели и получить данные с помощью RESTAdapter.Ember App Kit + RESTAdapter + PHP - запрос PUT не работает

Я реализовал API JSON, используя Symfony2.

Но теперь, когда я хочу сохранить отредактированные данные на сервере, и когда я вызываю метод save() на модели, он отправляет запрос OPTIONS на сервер, но XMLHttpRequest не может загрузить http://myservice.ge/customers/1. Метод PUT не допускается методами Access-Control-Allow-Methods.

Я знаю, что вы не можете отправлять запросы PUT из браузера в другой домен, и я не спрашиваю, как это сделать.

Мой вопрос в том, как я могу использовать набор приложений Ember и его функции и иметь сервисное и переднее приложение в том же домене? когда я запускаю Ember App Kit с помощью grunt, он начинается с порта 8000, а мой apache, который обслуживает PHP, работает на порту 80.

Я мог бы jus скопировать + вставить результат 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 файл:

Пример маршрутизатора в routing.yml:

user_update: 
    pattern: /users/{id} 
    defaults: { _controller: YourBundle:User:update } 
    methods: [PUT, OPTIONS] 
Смежные вопросы