Per*_*son 14 javascript api rest http angularjs
我是AngularJS的新手,并且构建了一个与服务器交互的应用程序.服务器有一个REST API,但是使用纯文本响应某些方法,而使用JSON响应其他方法.我已经使用AngularJS的$resource
服务实现了一个简单的http请求方法.
但是,当服务器响应是纯文本时,AngularJS中的响应是一个对象,响应字中的每个字符都有一个条目.我怎样才能解决这个问题(以一种好的方式)?理想情况下,我希望能够告诉我的服务何时期望纯文本以及何时期望JSON,并在两种情况下获得格式良好的响应.
Ian*_*rty 20
$ resource是一个使用Restful对象的便利包装器.它会自动尝试解析为JSON并根据$ resource定义填充对象.
对于非静态资源,使用$ http服务会好得多.
这是一个没有这种霸道对象映射的低级API.
例如
$http({method: "GET", url: "/myTextDocURL"})
.success(function(data){
// data should be text string here (only if the server response is text/plain)
}
);
Run Code Online (Sandbox Code Playgroud)
mek*_*azu 16
根据文档,您为资源指定了一个自定义操作,该操作可以覆盖将响应从json转换为javascript对象的默认行为.transformResponse函数的'data'参数将包含您的文本有效负载.
在这种情况下,transformResponse方法返回一个包含字符串的对象而不仅仅是字符串本身,否则它将继续尝试将字符串转换为数组.
var Stub = $resource('/files/:filename', {}, {'getText': {
transformResponse: function(data, headersGetter, status) {
return {content: data};
}
}});
Run Code Online (Sandbox Code Playgroud)
要使用资源调用您的自定义getText()操作而不是普通的旧get():
Stub.getText({'filename': 'someFile.txt'}, function(response) {
console.info("Content of someFile.txt = " . response.content);
});
Run Code Online (Sandbox Code Playgroud)
这是一个老帖子,但我认为它应该得到一个新的答案.
归档时间: |
|
查看次数: |
21324 次 |
最近记录: |