1

以下代码在 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)
  })
4

1 回答 1

0

我遇到了和你一样的问题。就我而言,使用 angular.toJson() 产生了一个有效的主体。

于 2015-09-11T15:20:10.193 回答