如何在提取/ 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

回到顶部