欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue jsonp配置

錢艷冰2年前9瀏覽0評論

對于使用Vue開發前端應用的開發者而言,涉及到跨域問題時常會考慮使用JSONP方式來解決。JSONP是一種跨域請求數據的方案,可以通過script標簽來實現,但是要注意的是該方案只支持GET請求。

在Vue中,JSONP的使用很簡單,只需要配置axios的jsonpAdapter即可:

axios.defaults.jsonp = true;
axios.defaults.jsonpAdapter = function (config) {
return new Promise(function (resolve, reject) {
window[config.jsonpCallback] = function (res) {
resolve({
data: res
});
};
var script = document.createElement('script');
var callback = config.jsonpCallback || 'jsonpCallback';
script.src = config.url + '&callback=' + callback;
document.body.appendChild(script);
});
}

這里我們重點看一下jsonpAdapter的具體實現:

axios.defaults.jsonpAdapter = function (config) {
return new Promise(function (resolve, reject) {
// 創建JSONP回調函數
window[config.jsonpCallback] = function (res) {
resolve({
data: res
});
};
// 創建script標簽
var script = document.createElement('script');
// JSONP的回調函數名,默認為jsonpCallback
var callback = config.jsonpCallback || 'jsonpCallback';
// 設置script標簽的src屬性
script.src = config.url + '&callback=' + callback;
document.body.appendChild(script);
});
}

通過設置jsonp參數為true,axios就會使用默認的JSONP適配器來處理請求。

使用時,我們只需要在請求時指定jsonpCallback參數即可,例如:

axios({
url: '/api/data',
params: {
callback: 'handleData'
}
}).then(function (res) {
console.log(res.data);
}).catch(function (err) {
console.log(err);
});

以上就是Vue中使用JSONP的配置方法,在使用的過程中需要注意請求URL中是否有callback參數,以及JSONP回調函數名的保持一致。