以下代码在 IE 10、Chrome 和 Firefox 中运行时发送没有正文(空正文)的 POST 请求,它的行为正确,
angular.module('test', ['ngResource', 'ngRoute']).
config([function() {}])
angular.module('test').
controller('c1', ['$scope', '$http', '$resource', function($scope, $http, $resource) {
$scope.zaza = "popo"
var Supplyers = $resource('api/supplyer', null,
{fetch: { method: 'POST', isArray: true}}
)
var ids = [1,2,3]
Supplyers.fetch(
{ids: ids},
function(suppliers) {
console.log(">>>" + suppliers)
},
function(err) {
console.log("!!!" + err)
}
)
}])
Angular 的文档提供了有关 IE 版本早于 9 的信息:
http://docs.angularjs.org/guide/ie
但没有提到ie 10的问题......
角度的版本是:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular-resource.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular-route.min.js" type="text/javascript"></script>
======= 更新
我在“IE9 模式”和“IE8 模式”下测试了代码,令人惊讶的是,它们都可以工作,所以问题只存在于 IE 10 中......
======= 更新
我包含了 html,请注意角度版本(1.0.8)的变化,它的行为方式也相同(帖子的正文为空......)
<!DOCTYPE html>
<html>
<head>
<title></title>
<!--[if lte IE 8]>
<script src="/assets/javascripts/lib/json3.min.js"></script>
<![endif]-->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular-resource.js" type="text/javascript"></script>
<!-- https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js
https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2
-->
<script src="/assets/javascripts/test.js" type="text/javascript"></script>
</head>
<body ng-app="test" xmlns:ng="http://angularjs.org" id="ng-app">
<div ng-controller="c1">
<h1>{{zaza}}</h1>
</div>
</body>
</html>
注意:带有 $http.post 的帖子也有同样的问题:
$http.post('api/supplyer', {ids: ids}).success(function(res){
console.log("<<" + res)
}).error(function(res){
console.log("!!"+ res)
})