我必须' PUT'一些json数据到服务器。以下代码抛出错误
$rootScope.request.data = {"name": "John", "surname":"Doe"}
var uri = //some REST API
var action = $http({
method: 'PUT',
url: uri,
data: $rootScope.request.data
});
抛出的错误是:
找不到资源的流:资源{displayName =' null', URI =' /注册'} (org.mule.module.apikit.exception.ApikitRuntimeException)。信息 payload的类型为:NullPayload
但是当我这样做时,它会起作用
$rootScope.request.data = {"name": "John", "surname":"Doe"}
var uri = //some REST API
var action = $http.put(uri, $rootScope.request.data);
&#39>行动'然后在数组中推送,并使用$ q.all触发请求。成功和错误在$ q
中处理想知道它们之间有什么区别?我第一次请求时遗漏了什么吗?
答案 0 :(得分:5)
解决了这个问题。感谢@rzysia指针。
当我比较请求时,第一种情况中的Content-Type作为'text / plain'发送,而在第二种情况下它是'application / json'。 REST API需要'application / json'作为内容类型。
添加以下代码就可以了解
$rootScope.request.data = {"name": "John", "surname":"Doe"}
var uri = //some REST API
var action = $http({
method: 'PUT',
url: uri,
headers: {"Content-Type": "application/json;charset=UTF-8"},
data: $rootScope.request.data
});
这些链接很有用:https://github.com/angular/angular.js/issues/2149和Content-Type header not being set with Angular $http
非常感谢所有投入2位的人:)