我正在尝试使用$ 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
});
}
为什么它在每个复选框上发布检查或取消选中,这些复选框将在我到达该阶段后从数据库中过滤结果。
非常感谢任何帮助。
谢谢!
使用网络标签结果编辑:
答案 0 :(得分:4)
如果您在浏览器中打开URI,则表示您正在执行GET请求。您的后端可能会设置为响应GET路由而不是POST。
答案 1 :(得分:2)
根据Jeff的评论,您可能需要在控制器中添加以下内容
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';