--- /dev/null
+import axios from 'axios';\r
+\r
+\r
+export default function http (url:string,data:object = {},method:any = 'get',query?:string | object):any {\r
+ return new Promise((resolve,reject) => {\r
+ method = method.trim().toLocaleLowerCase()\r
+ let promise:any;\r
+ if(method === 'get' || method === 'delete'){\r
+ // 若无参数则不传递data\r
+ let options:object;\r
+ if(JSON.stringify(data) === '{}'){\r
+ options = { method, url };\r
+ }else{\r
+ options = { method, url, params: data};\r
+ }\r
+\r
+ // 若请求方式为delete请求,则携带请求头\r
+ if(method === 'delete'){\r
+\r
+ }\r
+\r
+ promise = axios(options);\r
+\r
+ }else if (method === 'post' || method === 'put') {\r
+ if(method === 'post' && query){\r
+ let params:string;\r
+ if(<string>query){\r
+ query = JSON.parse((<string>query));\r
+ }\r
+ for(let key in <object>query){\r
+ params = '&' + key + '=' + query[key];\r
+ }\r
+ params = params.slice(1);\r
+ url += '?' + params;\r
+ }\r
+ promise = axios({\r
+ method,\r
+ url,\r
+ data,\r
+ })\r
+ }\r
+ promise\r
+ .then((response) => {\r
+ // 请求成功返回携带成功状态及响应数据的promise对象\r
+ if(response.status === 200 || 304){\r
+ resolve(response.data)\r
+ }else{\r
+ reject(response)\r
+ }\r
+ })\r
+ .catch((error) => {\r
+ if(error.status === 404){\r
+ reject('请求资源不存在')\r
+ }else{\r
+ reject(error.message)\r
+ }\r
+ \r
+ })\r
+\r
+ })\r
+}\r
+\r
+\r