Я думаю, что второй параметр метода 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.