全局使用Axios
首先,在自己建的公用方法的文件中new一个新的HttpUtil.js文件。以下为HttpUtil.js的内容:
var axios = require('axios')// 配置项目根如路径var root = 'http://localhost:8090/manage'// axios请求function httpApi (method, url, params) { return new Promise((resolve, reject) => { axios({ method: method, url: url, data: method === 'POST' || method === 'PUT' ? params : null, params: method === 'GET' || method === 'DELETE' ? params : null, baseURL: root, withCredentials: false }).then(。
(response) => {。
resolve(response)。
).catch(
(error) => {。
reject(error)
})
}// 返回在vue模板中的调用接口export default { get: function (url, params) { return httpApi('GET', url, params)。
}, post: function (url, params) { return httpApi('POST', url, params)。
}, put: function (url, params) { return httpApi('PUT', url, params)。
}, delete: function (url, params) { return httpApi('DELETE', url, params)。
vue跨域可以使用自带的proxyTable功能,打开工程找到config/index.js 搜索proxyTable参数,修改如下:
proxyTable: {
'/abc': {
target: 'http://192.168.3.100',。
secure: false,
changeOrigin: true,。
},
这是需要后端设置响应头的。
跨域是浏览器行为,需要后端允许跨域,才能正常访问,不是在前端设置的。
这个问题和vue无关。
跨域请求就会出现这样的问题。
由于CORS(cross origin resource share)规范的存在,浏览器会首先发送一次options嗅探,同时header带上origin,判断是否有跨域请求权限,服务器响应access control allow origin的值,供浏览器与origin匹配,如果匹配则正式发送post请求。