Angularjs $ http метод jsonp службы продолжает возвращать код состояния 404 - PullRequest
0 голосов
/ 20 сентября 2018

Я столкнулся с проблемой со службой $ 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 голосов
/ 20 сентября 2018

Хорошо, я нашел причину этого поведения.Так как я запрашивал страницу HTML, которая не в формате JSONP, это приводит к тому, что не вызывается предоставленный обратный вызов.

Ниже приведен код, отвечающий за это:

    if (event) {

    if (event.type === 'load' && !callbacks.wasCalled(callbackPath)) {
      event = { type: 'error' };
    }
    text = event.type;
    status = event.type === 'error' ? 404 : 200;
  }

Jquery обрабатывает это лучше, я получил код состояния 200, а не 404.

...