【发布时间】:2018-10-06 19:34:40
【问题描述】:
我认为 HTTPClient jsonp 方法的第二个参数没有按预期工作,或者我可能没有正确理解它。 Link
以下是我使用jsonp所做的事情:
我在 app.module.ts 中导入了 HttpClientJsonpModule 下面是它的代码
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 is not defined
我的 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 在 url 之后添加 ?test_callback=ng_jsonp_callback_0
然后经过一些调试,我尝试了这个 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" })
它奏效了。
有人可以解释为什么它现在可以工作,以及如何将我的自定义回调函数名称传递给 Angular 5 中的 jsonp。
【问题讨论】:
标签: angular httpclient jsonp angular5