我试图通过服务列出来自Etsy配置文件的产品,使用jsonp:started/jsonp开发人员页面中提供的语法
这是我的服务:
import { Injectable } from '@angular/core';
import { Jsonp } from '@angular/http';
import "rxjs/add/operator/first";
@Injectable()
export class EtsyService {
constructor(
private jsonp: Jsonp
) { }
listProducts(){
this.jsonp.get("https://openapi.etsy.com/v2/listings/513882265.js?callback=getData&api_key=YOURAPIKEY")
.first()
.subscribe(
(data) => {
console.log(data);
});
}
}我有两个错误:
未定义的ReferenceError: getData未定义
和
错误响应{_body:"JSONP注入的脚本没有调用回调“,状态: 200,ok: true,statusText:"Ok",Header:Header…}
发布于 2017-05-25 14:27:02
我自己找到了解决办法。您需要使用JSONP_CALLBACK作为url语法中的默认回调。这将是服务的更正代码:
import { Injectable } from '@angular/core';
import { Jsonp } from '@angular/http';
import "rxjs/add/operator/map";
@Injectable()
export class EtsyService {
constructor(
private jsonp: Jsonp
) { }
listProducts(){
this.jsonp.request("https://openapi.etsy.com/v2/listings/513882265.js?callback=JSONP_CALLBACK&api_key=YOURAPIKEY", { method: 'Get' })
.map((data: any) => data.json())
.subscribe(
(data: any) => {
console.log(data);
}
)
}
}https://stackoverflow.com/questions/44163536
复制相似问题