Angular 2 JSONP,注入脚本没有调用回调

时间:2016-08-10 07:04:40

标签: javascript angularjs angular

我正在使用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。

有人知道我应该从远程服务器获取数据吗?

1 个答案:

答案 0 :(得分:0)

您的代码假定您的服务器应用程序在返回的有效内容中使用callback参数。您的服务器可以使用其他参数,例如c

此参数的内容用于生成响应有效负载,如下所示:

__ng_jsonp__.__req0.finished({ ... })

否则,不会在Angular 2中调用回调(在你的情况下你有什么)。