$ http服务遇到问题,在使用jsonp方法时,我试图请求另一个域上的html页面。我得到的实际状态码响应为200,另一方面,jsonp方法始终返回404状态码。有没有人看过这个问题?
研究之后,我发现有人说如果页面的内容为空,它将返回状态代码-1或404,我不记得确切的响应了。
代码:
this.$http
.jsonp(this.$sce.trustAsResourceUrl('https://target-domain/landing_page'),
{
jsonpCallbackParam: 'callback',
},
)
.then((data) => {
console.log('sucess', data);
})
.catch((e) => {
console.log('error', e);
});
我正在使用angularJs 1.6.10
答案 0 :(得分:0)
好的,我找到了这种现象的原因。由于我请求的不是JSONP格式的HTML页面,因此导致无法调用提供的回调。
下面是负责此操作的代码:
if (event) {
if (event.type === 'load' && !callbacks.wasCalled(callbackPath)) {
event = { type: 'error' };
}
text = event.type;
status = event.type === 'error' ? 404 : 200;
}
jQuery以更好的方式处理了这个问题,我得到了状态码200,而不是404。