Poo*_*oja 3 http http-put angularjs angularjs-http
我必须将一些json数据'PUT'发送到服务器.以下代码抛出错误
$rootScope.request.data = {"name": "John", "surname":"Doe"}
var uri = //some REST API
var action = $http({
method: 'PUT',
url: uri,
data: $rootScope.request.data
});
Run Code Online (Sandbox Code Playgroud)
抛出的错误是:
找不到资源的流:资源{displayName ='null',uri ='/ signup'}(org.mule.module.apikit.exception.ApikitRuntimeException).消息有效内容的类型为:NullPayload
但是,当我这样做时,它的工作原理
$rootScope.request.data = {"name": "John", "surname":"Doe"}
var uri = //some REST API
var action = $http.put(uri, $rootScope.request.data);
Run Code Online (Sandbox Code Playgroud)
然后将'action'推入一个数组中,并使用$ q.all触发请求.成功和错误在$ q中处理
想知道他们之间有什么区别?我的第一次请求中是否遗漏了一些内容?
解决了这个问题.感谢@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
});
Run Code Online (Sandbox Code Playgroud)
这些链接很有用:https://github.com/angular/angular.js/issues/2149并且没有使用Angular $ http设置Content-Type标头
非常感谢所有投入2位的人:)
| 归档时间: |
|
| 查看次数: |
4347 次 |
| 最近记录: |