我对角色有点新意,这是我第一次使用$ 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请求工作得非常好!它们看起来像是有用的数据包......
以前有人遇到过这个问题吗? 感谢您的帮助!
答案 0 :(得分:0)
在执行跨域请求时使用OPTIONS谓词。基本上,您需要在服务器端代码上启用跨域请求。 GET请求有效,因为它不受跨域限制和Fiddler工作的影响,因此在从浏览器发出XHR请求时会出现跨域请求。如果您查看对OPTIONS请求的响应,您可能会发现一些不允许跨域请求的内容。