angularjs - Angularjs $http服务jsonp方法不断返回404状态码
问题描述
我遇到了 $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
解决方案
好吧,我找到了这种行为的原因。由于我请求的不是 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。
推荐阅读
- javascript - MongooseError [CastError]:模型“用户”的路径值转换为字符串失败
- sql - SQL 查询 - 将数据复制到一个字段中
- c# - 获取对象引用未设置为对象的实例
- android - Intent.ACTION_PICK FAILED BINDER TRANSACTION 在嵌套片段上
- python - 在 python 3.8 中,如何测试数据类中注释为 Literal 的字段在运行时是否有效
- amazon-web-services - 在 dynamoDB 中获取日期范围的数据
- java - 检查索引处的特定值时出错为空
- docker - 在 Synology NAS 上授予访问 /var/run/docker.sock 的权限
- php - 将分钟添加到日期时间无法正常工作
- sql - 对于所有正在运行的查询,在 Oracle SQL Developer 中查找特定用户/机器的活动查询的当前查询时间的最佳方法是什么?