如何在提取/ axios跨站点请求上使用JSONP
我正在尝试对Wikipedia API进行GET请求。如下使用jQuery可以正常工作:
$.ajax({ url: 'https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=Test&callback=JSON_CALLBACK',
type: 'GET',
headers: {'X-Requested-With': 'XMLHttpRequest'},
crossDomain: true,
dataType: 'jsonp'
}).done(function(data) {
console.log("Data: ", data);
});
但是我想使用fetch或axios api,该API会在 通过请求方法
停止。为什么它在jQuery中起作用,但在其他API中却不起作用?
axios.get('https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=Test&callback=JSON_CALLBACK', { headers: {'X-Requested-With': 'XMLHttpRequest',
'content-type': 'text/plain'}
})
.then(function (response) {
console.log("Response: ", response);
});
我看到它可能与GET请求的Content-Type有关,在jQuery上,默认值似乎是 ,但是尝试更改fetch /
axios请求的内容类型时,我没有成功作为 发送。
有什么问题的想法吗?
回答:
我发现问题与请求的内容类型无关。
问题是由于以下事实造成的:API(获取和axios)不支持 请求。
的使用对我来说还不够清楚,我可以在这里找到很好的解释
尽管他们不支持它,但它们提供了执行 请求的替代方法:
axios:https
:
//github.com/mzabriskie/axios/blob/master/COOKBOOK.md#jsonp
提取:https :
//www.npmjs.com/package/fetch-jsonp
以上是 如何在提取/ axios跨站点请求上使用JSONP 的全部内容, 来源链接: utcz.com/qa/399255.html