我正在使用Angular 2.RC4和typescript
我上课了数据:
import {Injectable, Injector, ReflectiveInjector} from '@angular/core';
import {
Http, Response, Headers, RequestOptions, HTTP_PROVIDERS, Jsonp, JSONP_PROVIDERS,
URLSearchParams
} from '@angular/http';
import { Observable } from 'rxjs/Observable';
import '../helpers/rxjs-operators';
import { caaConfig } from "../config/cmsaa";
getData(url: string): Observable<any>{
let params = new URLSearchParams();
params.set('callback', 'JSONP_CALLBACK');
url = this.domain + url;
let cacheKey = 'cache_caa_http_get_' + url;
if(this._cache[cacheKey]){
return this._cache[cacheKey];
}else{
let request = this.jsonp.get(url, {search:params}).map(this.extractData).catch(this.handleError);
this._cache[cacheKey] = request;
return request;
}
}
在所有来源:github问题,stackoverflow帖子我看到添加回调参数解决问题。在我的情况下没有。
我的错误是:
注入JSONP的脚本没有调用回调。
和网址
{{3}}
在我的引导程序中包含JSON_PROVIDERS。
有人知道我应该从远程服务器获取数据吗?
答案 0 :(得分:0)
您的代码假定您的服务器应用程序在返回的有效内容中使用callback
参数。您的服务器可以使用其他参数,例如c
。
此参数的内容用于生成响应有效负载,如下所示:
__ng_jsonp__.__req0.finished({ ... })
否则,不会在Angular 2中调用回调(在你的情况下你有什么)。