2017-04-18 55 views
2

我試圖在wikipedia API上執行GET請求。使用jQuery如下工作正常:如何在fetch/axios跨站點請求上使用JSONP

$.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); 
}); 

但我想用提取或愛可信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請求的內容類型,jQuery的默認似乎是text/plain的,但試圖改變內容時,我沒有成功 - 正在發送爲text/html的提取/ axios請求類型。

有什麼想法可能是什麼問題?

+0

我不認爲axios支持jsonp。 – noahnu

+0

你說得對,我會解決這個問題 –

回答