Angular 5: callbackParam не работает в запросе JSONP с использованием HTTPClient - PullRequest
0 голосов
/ 26 апреля 2018

Я думаю, что второй параметр метода HTTPClient jsonp не работает должным образом, или я не правильно его понимаю. Ссылка

Ниже приведены действия, которые я сделал для использования jsonp:

Я импортировал HttpClientJsonpModule в app.module.ts Ниже приведен код этого

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpClientModule, HttpClientJsonpModule } from '@angular/common/http';
import { AppComponent } from './app.component';
import { ConstituencyStatusService } from './constituency-status.service';
import { SwitcherService } from './switcher.service'


@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
   BrowserModule,
   HttpClientModule,
   HttpClientJsonpModule
  ],
  providers: [ConstituencyStatusService,SwitcherService,],
  bootstrap: [AppComponent]
})
export class AppModule { }

тогда я пытаюсь сделать следующее, но получаю ошибку

this.http.jsonp(url,'test_callback').subscribe(data => {
  console.log(data);
});

ошибка: ReferenceError: test_callback не определен

Мой вывод в формате JSON: URL: goo.gl/6fqXq5

test_callback({ "test_url_1": "url_1", "test_url_2": "url_2", "test_url_3": "url_3", "test_url_4": "url_4", "test_url_5": "url_5", "test_url_6": "url_6", "test_url_7": "url_7" })

Я вижу на вкладке сети, что httpclient добавляет ? Test_callback = ng_jsonp_callback_0 после URL

Затем, после некоторой отладки, я попытался вернуть json: goo.gl/cUwx93

ng_jsonp_callback_0({ "test_url_1": "url_1", "test_url_2": "url_2", "test_url_3": "url_3", "test_url_4": "url_4", "test_url_5": "url_5", "test_url_6": "url_6", "test_url_7": "url_7" })

и это сработало.

Может кто-нибудь объяснить, почему это работает сейчас и как я могу передать имя своей пользовательской функции обратного вызова в jsonp в Angular 5.

1 Ответ

0 голосов
/ 26 апреля 2018

Пожалуйста, вы можете показать url, который вы передаете jsonp()?

Как заметил (комментарий kcrisman), похоже, что вы не единственный, кто столкнулся с такой проблемой.

Если вы указываете имя обратного вызова какqueryParam в твоем запросе все сломалось.Не указав его и добавив только имя обратного вызова в метод jsonp(), похоже, работает.

Вы также можете проверить строку N ° 1124 HttpClient , чтобы увидеть его поведение с JSONP_CALLBACK.

...