2014-01-15 6 views
2

Я пытаюсь проверить отправку данных на сервер с помощью $ http.post. Бэкэнд построен с помощью laravel.

Я просто изучаю Угловое, поэтому нет ничего сложного. Когда я пытаюсь отправить в/api, и я получаю ошибку 404 в моей консоли браузера. Если я открою URl в браузере, он существует. Сама страница просто возвращает некоторый json.

Вот HTML:

<ul> 
    <li ng-repeat="brand in brands"> 
     <input type="checkbox" name="{{brand.brand_name}}" ng-model="brand.checked" ng-change="getSelectedBrands()"> 
     {{ brand.brand_name }} 
    </li> 
</ul> 

И часть контроллера отвечает за размещение данных:

$scope.getSelectedBrands = function() { 
    var data = $filter('filter')($scope.brands, {checked: true}); 
    $http.post('/api', data).success(function(data, status, headers) { 
     //do something 
    });   
} 

Почему сообщения на каждый флажок Проверить или снимите флажок в том, что эти флажки будут фильтровать результаты из базы данных, как только я доберусь до этого этапа.

Любая помощь была бы принята с благодарностью.

Спасибо!

EDIT С СЕТИ TAB РЕЗУЛЬТАТ: Network Tab

+0

вы можете открыть вкладку сети в Devtools и показать нам запрос? –

+0

Вы не указали свой код на стороне сервера, но прочитайте это http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/. Или мое сообщение в блоге о похожих проблемах с Coldfusion: http://www.jeffryhouser.com/index.cfm/2013/10/1/Calling-a-ColdFusion-CFC-from-AngularJS Я предлагаю вам использовать сниффер пакетов, чтобы увидеть что отправляется из вашего пользовательского интерфейса на сервер. Если у вас была такая же проблема, как у меня; то это ваше решение: '$ http.defaults.headers.post ['Content-Type'] = 'application/x-www-form-urlencoded; charset = UTF-8 '; ' – JeffryHouser

+0

@IlanFrumer Добавил скриншот с вкладки сети к моему вопросу. Спасибо – BarryWalsh

ответ

4

Если открыть URI в браузере вы выполняете запрос GET. Возможно, ваш сервер настроен для ответа на маршруты GET, но не POST.

+0

О, это все. Не могу поверить, что это была такая простая ошибка. Спасибо за вашу помощь! – BarryWalsh

2

согласно комментарий Джеффа, возможно, потребуется добавить следующие строки в ваш контроллер

$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'; 
Смежные вопросы