我正在将Angular 1应用程序迁移到Angular 4,有一个jsonp调用到我无法控制的端点。
在Angular 1应用程序中,它正在使用:
jsonpCallback: 'callback'
但无论请求中有什么回调,端点实际上都会以'回调'返回。 e.g。
callback({"result":"123456"})
我在Angular4中试过这个
const searchParams = Object.assign({}, {
callback: 'callback'
}, callParams);
const params = Object.keys(searchParams);
if (params.length) {
params.forEach((param: string) => searchConfig.set(param, searchParams[param]));
}
const options: RequestOptionsArgs = {
search: searchConfig
};
this.jsonp.request(url, options)
.subscribe((results) => {
console.log(results);
});
但是我在jsonp响应中得到错误“回调未定义”。
答案 0 :(得分:0)
为了解决这个问题,我需要在进行API调用之前在窗口对象上声明回调。
window.callback = function(data) {
//Do stuff here
}