Angular $ http.put数据包格式不正确

时间:2015-11-08 12:04:16

标签: angularjs

我对角色有点新意,这是我第一次使用$ http.put。 我的问题是当我发送数据包时,它不会包含数据(json对象),而PUT是一个标题(?)。

这就是我的代码:

app.controller('StatusController',['$http', function($http) {
  this.updateComment = function (eventid, comment) {
    var requestData = {"event-id":eventid, "new-comment":comment};
    $http({
      method: 'PUT',
      url: "http://172.18.212.59/event",
      data: requestData,
      headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    });
  }
}

所以我使用Fiddler为服务器生成PUT请求,并且它有效。所以我查看了数据包,试图了解差异来自哪里...... 结果如下: Packet generated by Angular - Not working Packet generated by the Fiddler Composer - Working

我也尝试过使用:

$http.put(url, requestData)

但那也不起作用......我的GET请求工作得非常好!它们看起来像是有用的数据包......

以前有人遇到过这个问题吗? 感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在执行跨域请求时使用OPTIONS谓词。基本上,您需要在服务器端代码上启用跨域请求。 GET请求有效,因为它不受跨域限制和Fiddler工作的影响,因此在从浏览器发出XHR请求时会出现跨域请求。如果您查看对OPTIONS请求的响应,您可能会发现一些不允许跨域请求的内容。