我正在使用Angular的$ http服务从远程数据源获取一些数据,但是将结果注销到控制台会产生空字符串。
该功能如下:
$http.get('/some/url/')
.success(function(data/*, status, headers, config*/) {
console.log('Success! data: ', data);
})
.error(function(data, status, headers, config) {
console.log('failed http req!');
console.log('data: ', data);
console.log('status: ', status);
console.log('headers: ', JSON.stringify(headers()));
console.log('config: ', JSON.stringify(config));
});
我故意调用一个我知道不存在的URL并希望获得404.当从浏览器运行时(使用cordova serve
),我看到所有错误数据都打印到console.log。< / p>
我正在使用Cordova~3.4
我已经为Cordova安装了控制台插件。
我正在使用adb logcat
设置为调试来查看Android设备日志。
有什么想法吗?
更新:我尝试了所有4个变量来使用JSON.stringify,只是为了看看是否可以在沮丧的时刻出于好运而将它们留在标题上()和配置,因为他们无论如何都是对象。我仍然没有得到关于数据或状态的任何打印,这仍然困扰着我......
答案 0 :(得分:2)
Cordova的console.log只接受一个参数(至少在Android上),这就是为什么我只获得了部分记录。将代码更改为:
$http.get('/some/url/')
.success(function(data/*, status, headers, config*/) {
console.log('Success! data: ' + data);
})
.error(function(data, status, headers, config) {
console.log('failed http req!');
console.log('data: ' + data);
console.log('status: ' + status);
console.log('headers: ' + JSON.stringify(headers()));
console.log('config: ' + JSON.stringify(config));
});
解决了这个问题。
答案 1 :(得分:0)
成功和错误回调实际上将响应对象分解为4个参数并将它们作为参数传递。
您应该使用.then语法来处理成功和错误:
$http(...).then(success,error)
错误回调的第一个参数是原始响应对象,它是JSON格式。您可以从中提取一些错误信息。
成功和错误回调很方便,因此将其移动到响应拦截器可能更有意义。
答案 2 :(得分:0)
在 Cordova 中不推荐将多个 File → Settings → Editor → Font
传递给 args
。您可以改为联系日志。原因是,Cordova 在钩子下使用了 WebKit,而 WebKit 的 console.log
方法只有一个参数,并且总是打印第一个参数。您可以在 official docs for android 上找到更多详细信息。