AngularJS $ http.post 404

时间:2014-01-15 15:09:45

标签: php angularjs laravel

我正在尝试使用$ http.post测试发布数据到服务器。后端是用laravel建造的。

我只是在学习Angular,所以没有任何复杂的事情发生。当我尝试发布到/ 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
    });        
}

为什么它在每个复选框上发布检查或取消选中,这些复选框将在我到达该阶段后从数据库中过滤结果。

非常感谢任何帮助。

谢谢!

使用网络标签结果编辑: Network Tab

2 个答案:

答案 0 :(得分:4)

如果您在浏览器中打开URI,则表示您正在执行GET请求。您的后端可能会设置为响应GET路由而不是POST。

答案 1 :(得分:2)

根据Jeff的评论,您可能需要在控制器中添加以下内容

$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';