前端项目中跨域请求不得不用到Ajax请求,Jquery配置如下;
const ajaxPost = (url,params) => {
return new Promise(function (resolve,reject){
$.ajax({
type: 'POST',
dataType: 'json',
data: params,
url: url,
xhrFields: {
withCredentials: true
},
crossDomain: true,
traditional: true,
success: data => {
resolve(data.object)
},
error: error => {
reject(error.object)
},
complete: () => {}
})
})
}
const ajaxJson = (url,params) => {
return new Promise(function (resolve,reject){
$.ajax({
type: 'POST',
dataType: 'JSON',
data: params,
url: url,
xhrFields: {
withCredentials: true
},
contentType: "application/json"
success: data => {
resolve(data.object)
},
error: error => {
reject(error.object)
},
complete: () => {}
})
})
}
axios的配置如下;qs库是用来发送formdata数据的,并且可以改变数据的格式,同时他还可以去掉options预请求
npm install qs --save
const instance = axios.create({
baseURL: server,
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
},
transformRequest: [function (data) {
data = qs.stringfy(data);
return data;
}],
transformResponse:[function (data,header) {
if (JSON.parse(data).code === 10016) {
route.push({path: '/login'})
return
}
rerun JSON.stringfy(JSON.parse(data).object)
}]
})
const HttpGet = function(url, param) {
return instance.get(url,{params:param})
}
const HttpPost = function(url, params) {
return instance.post(url,params
}