return new Promise(function(reslove, reject) { //设定请求参数并且发送请求 var p = Vue.http({ url: requesturl + req_config[item].url+"?"+new Date().getTime(),//请求url,包括请求的restful参数和时间戳 body: params,//请求参数 headers: { "Content-Type": item.contentType || "application/x-www-form-urlencoded",//请求数据类型 }, before: () => {},//请求预处理函数 method: item.method || "POST",//请求方式,POST GET PUT DELETE OPTION emulateJSON: item.emulateJSON || true //是否序列化body }); //请求结果处理 p.then((res) => { if(res.body.code == 1) {//成功 reslove(res) } else if(res.body.code == 3) {//需要登录 //去登录 } else {//出错 reject(res) } }, function() { //网路错误 console.error("网络错误"); }); });
return new Promise((resolve, reject) => { Vue.http({ url: '/monitor/sdk/score', method: 'GET', params: {json: JSON.stringify(objs || [])} }).then(({data: {datas}}) => { resolve(datas || {}) }, () => { reject("[s:score] - 获取评分失败!") }) })
return new Promise((resolve, reject) => { Vue.http({ url: options.url, method: options.method, data: options.data || {} }).then((res) => { resolve(res.data); }, (res) => { Toast('请求服务器失败,请重试'); }); });
module.exports = (params) => { Vue.http.options.heads = { 'Content-Type': 'application/x-www-from-urlencoded;charset=UTF-8;' } Vue.http.options.emulateJSON = true Vue .http({ url: params.url, method: params.method, data: params.data || {} }) .then((response) => { let data = response.data params.callback(data) }, (err) => { console.log(err) }) }
module.exports = (params) => { Vue.http.options.headers = { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8;' } // Vue.http.options.xhr = { // withCredentials: true // } Vue.http.options.emulateJSON = true Vue .http({ url: params.url, method: params.method, data: params.data || {} }) .then((response) => { let data = response.data params.callback(data) }, (response) => { // error callback }) }
return new Promise((resolve, reject) => { // Fetch the first page Vue.http(opts).then((response) => { // Calculate additional pages we need to fetch let addnPages = opts.full && response.data.count && (response.data.count > opts.params.page_size) ? [...Array(Math.ceil(response.data.count / opts.params.page_size)).keys()].map(p => p + 1).slice(1) : [] if (addnPages.length) { let pagePromises = addnPages.map((page) => { let pageOpts = JSON.parse(JSON.stringify(opts)) pageOpts.params.page = page return Vue.http(pageOpts) }) Promise.all(pagePromises).then((responses) => { response.data.results = response.data.results.concat.apply(response.data.results, responses.map(r => r.data.results)) resolve(response) }) } else { resolve(response) } }, (response) => { // If we get a 401, assume this is due an expired token which // we should refresh before trying again if (response.status == 401) { store.dispatch(types.OAUTH2_REFRESH_TOKEN, {}).then(() => { store.dispatch(types.NINETOFIVER_API_REQUEST, options).then((res) => { resolve(res); }, (res) => { reject(res) }) }, () => { reject(response) }) } else { reject(response) } }) })
export const setContent = ({ dispatch, state }, tag, pageNum, callback) => { if (state.content.data[tag][pageNum]) return callback(setMsg(true, '获取缓存数据')) Vue.http({ url: '/api/v1/topics', method: 'GET', params: { page: pageNum, limit: 20, tab: tag === 'index' ? '' : tag } }).then(res => { let data = JSON.parse(res.data) if (data.success) { dispatch(types.SET_CONTENT, tag, data.data, pageNum) callback(setMsg(true, '成功')) } else { callback(setMsg(false, data.error_msg)) } }).catch(err => { console.log(err) callback(setMsg(false, '接口调用出错')) }) }
return new Promise((resolve, reject) => { const _url = /\?/.test(url) ? `${url}&cachebust=${Date.now()}` : `${url}?cachebust=${Date.now()}`; Vue.http(assign({}, options, { method: method, data: data, url: _url, headers: options.headers, })) .then( (resp) => resolve(!!dataOnly ? resp.data : resp), (err) => { console.log(err); if(err.status == 401) { localStorage.clear(); location.reload(); } reject(new Error(`${err.status}: ${err.statusText}`)); } ); });
post(url, data, doneCb = null, errorCb = null) { return this.request('post', url, data, doneCb, errorCb); }, put(url, data, doneCb = null, errorCb = null) { return this.request('put', url, data, doneCb, errorCb); }, delete(url, data = {}, doneCb = null, errorCb = null) { return this.request('delete', url, data, doneCb, errorCb); }, build(method, url, data = {}, beforeSend = null, doneCb = null, errorCb = null) { return Vue.http(url, { method: method , data: data , beforeSend: beforeSend }) .then(doneCb, errorCb); }, encode(obj){ var str = ""; for (var key in obj) { if (str != "") { str += "&"; } str += key + "=" + encodeURIComponent(obj[key]); } return str; },
let pagePromises = addnPages.map((page) => { let pageOpts = JSON.parse(JSON.stringify(opts)) pageOpts.params.page = page return Vue.http(pageOpts) })