AngularJS $ http服务jsonp方法不断返回404状态代码

时间:2018-09-20 07:03:24

标签: angularjs jsonp angular-http

$ 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

1 个答案:

答案 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。