【发布时间】:2014-03-27 18:21:51
【问题描述】:
我正在尝试使用 $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
});
}
为什么它会在每个复选框选中或取消选中时发布,因为一旦我到达那个阶段,这些复选框将过滤来自数据库的结果。
任何帮助将不胜感激。
谢谢!
使用网络选项卡结果编辑:
【问题讨论】:
-
您能在 devtools 中打开网络选项卡并向我们显示请求吗?
-
你没有分享你的服务器端代码,但是阅读了这个victorblog.com/2012/12/20/…。或者我关于 Coldfusion 类似问题的博客文章:jeffryhouser.com/index.cfm/2013/10/1/… 我建议您使用包嗅探器来查看从您的 UI 发送到服务器的内容。如果你和我有同样的问题;那么这就是你的解决方案:
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'; -
@IlanFrumer 将网络选项卡中的屏幕截图添加到我的问题中。谢谢
-
你能发布你的服务器代码吗?
-
@Reboog711 服务器端代码只是从服务器返回 JSON 的路由。它自己工作,所以我认为它与问题不太相关。那条线去哪儿了?谢谢!