该封装对get,post,delete,count等方法进行封装,并解决了跨域
/**
* Created by zhangning on 2017/4/26.
*/
import axios from 'axios';
var timeout = 1000;
// header配置
var fillHeader = function (httpObj) {
var headers = httpObj.headers;
//加入leanCould Token
headers["X-LC-Id"] = "0s7NIDDbn3JneazXE1PBNYcd-gzGzoHsz";
headers["X-LC-Key"] = "40YjJ4gQafYtJlmssOH7Ovha";
return headers;
}
var request = function (httpObj) {
//跨域准备
var instance = axios.create({
// timeout: timeout
headers: {'Content-Type': 'application/json;charset=UTF-8'}
});
httpObj.data = httpObj.data || {};
httpObj.headers = httpObj.headers || {};
httpObj.headers = fillHeader(httpObj);
// request拦截,设置header
instance.interceptors.request.use(function (config) {
config => {
config.data= JSON.stringify(config.data);
// config.headers={
//
// }
}
return config;
});
//response拦截,处理返回结果
instance.interceptors.response.use(function (response) {
var data = response.data ;
if(undefined == data.result) {
// console.log("http->[" + response.method + "]=" + response.url + getParamString(data));
// console.log("error->" + getReturnString(response.data));
return Promise.resolve(data)
}
return Promise.resolve(data);
}, function (error) {
if (error.response) {
// 请求已发出,但服务器响应的状态码不在 2xx 范围内
var errorMsg = error.response.data;
if(errorMsg) return Promise.reject(JSON.stringify(errorMsg));
} else {
console.log('Error', error.message);
}
return Promise.reject(error);
});
return instance(httpObj);
}
//封装了几种方法
var callHttpService = {
// setBaseUrl: function (url) {
// baseurl = url;
// },
// 获取
get: function (model) {
var httpObject = {
method: "GET",
url: model
}
return request(httpObject);
},
// 删除
delete: function (model) {
var httpObject = {
method: "DELETE",
url: model
}
return request(httpObject);
},
//创建
post: function (model,body) {
var httpObject = {
method: "POST",
url: model,
data: body
}
return request(httpObject);
},
//更新
put: function (model, body) {
var httpObject = {
method: "PUT",
url: model,
data: body
}
return request(httpObject);
},
servlet: function (url, body) {
var httpObject = {
method: "POST",
url:url,
data: body
}
return request(httpObject);
}
};
export default callHttpService;
/**
* @Description :获取数据
* @param : url(带表名,不带id查询所有,带表名查询单条)
* @Author : zn-Cabigail(1163727353@qq.com)
* @Date : 2017/10/10 下午4:03
*/
// service.get("https://leancloud.cn:443/1.1/classes/zn?limit=10&&order=-updatedAt&&").then(function (res)
// {
// alert(JSON.stringify(res))
// })
/**
* @Description :添加数据
* @param :url,body
* @Author : zn-Cabigail(1163727353@qq.com)
* @Date : 2017/10/10 下午4:04
*/
// service.post("https://leancloud.cn:443/1.1/classes/zn",{name:'哈哈',age:213}).then(function (res) {
// alert(JSON.stringify(res))
// })
/**
* @Description :修改数据
* @param : url(带表名,带修改数据的id),body
* @Author : zn-Cabigail(1163727353@qq.com)
* @Date : 2017/10/10 下午4:04
*/
// service.put("https://leancloud.cn:443/1.1/classes/zn/59dc7d2a128fe1529c8e2cfb",{name:"修改了"}).then(function (res) {
// alert(JSON.stringify(res))
// })
/**
* @Description :删除数据
* @param: url(带表名,带删除的id)
* @Author : zn-Cabigail(1163727353@qq.com)
* @Date : 2017/10/10 下午4:05
*/
// service.delete("https://leancloud.cn:443/1.1/classes/zn/59dc7d2a128fe1529c8e2cfb").then(function (res) {
// alert(JSON.stringify(res))
// 删除返回的是空object
// })
// util.insert("zn",{name:'aa',age:2}).then(function (res) {
// alert("res :"+ JSON.stringify(res))
// })
网友评论