2016-01-29 2 views
0

Это сводит меня с ума, не знаю, где искать решение.http get and post are OK but put and delete дать ошибку 403 на реальном сервере

В чем ситуация? Я сделал угловое приложение с простым CRUD, который работает так, как должен, на моем локальном хосте. Теперь я перенес приложение на живой сервер, и казалось, что все работает. Я получаю весь список элементов в своей таблице, и я могу добавлять к нему элементы. Отлично. Но, к сожалению, операции $ http.delete и $ http.put этого не делают. Они попадают в ошибку 403. Многие люди дали рекомендации проверить разрешения. Но я думаю, что они настроены правильно: в папках есть 755, а внутри этих папок все файлы установлены на 644.

Что меня удивляет, так это то, что, по-видимому, существует разница между поведением приложения на локальном хосте и на реальном сервере. Почему это?

Есть ли там кто-нибудь, кто может привести меня к решению этой душераздирающей расстроенности?

Джозеф

+0

Проверьте инструменты разработчика в браузере и увидеть ошибки на вкладке консоли и сети, я действительно не думаю, что это проблема разрешения, маловероятная конфигурация сервера – maurycy

+0

какой серверный язык вы используете? возможно, это поможет вам: http://stackoverflow.com/questions/24193029/403-status-forbidden-when-put-and-delete-using-ajax –

+1

Хм, вы используете CORS? Если да, возможно, что методы PUT и DELETE не одобрены на стороне api? для узла nodeServer вы можете установить их следующим образом: 'res.header (« Access-Control-Allow-Methods »,« GET, POST, OPTIONS, PUT, PATCH, DELETE »);' – BotanMan

ответ

0

Вы должны белый список доменов, которые Вы Разрешать запрос от на вашем (я думаю) сервер PHP?

Это делается так:

<?php header("Access-Control-Allow-Origin: *"); 

Таким образом, вы можете также выбрать разрешенные методы, такие как GET, POST, PUT, PATCH, DELETE, OPTIONS и больше ..

+0

@ Shoeb: Да, вы правы, я вытаскиваю данные из базы данных через api.php Я разместил эти заголовки header («Access-Control-Allow-Origin: *»); header («Access-Control-Allow-Credentials: true»); header («Access-Control-Allow-Methods: DELETE, PUT, GET, POST»); в верхней части этого api.php, но результата нет. Он продолжает говорить об ошибке 403 с операциями put или delete. – Jojoseph

+0

Я кое-что прочитал о CSRF или XSRF (http://angularjs-best-practices.blogspot.nl/2013/07/angularjs-and-xsrfcsrf-cross-site.html). Может ли быть эта ошибка? с этим? – Jojoseph

+0

Можете ли вы разместить свои сообщения об ошибках? – JoeriShoeby

Смежные вопросы