Back

vuejs - 解决post请求变成option的请求问题.

发布时间: 2017-07-21 06:54:00

参考:https://segmentfault.com/q/1010000005095024

很多时候,我们需要发送 this.$http.post 请求, 但是在浏览器做调试的时候,发现发出去的请求是options请求.

问题的根源,在于,我们发出去的请求,不是"simple request", 那么在每次发送之前,都要自动发出一个option请求.

simple request需要同时符合下面的条件: (规范见:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Simple_requests )

1. get, post, head 的请求类型.

2. 不要设置一些列表之外的header (例如user-agent  ) 

3. Content-Type的值只能是:

3.1. application/x-www-form-urlencoded
3.2. multipart/form-data
3.3. text/plain

解决办法:

在 vue的配置文件中 (例如 webpack项目的 src/main.js 中)增加下面一句:

import VueResource from 'vue-resource';
Vue.use(VueResource);
....

//增加下面这句: 
Vue.http.options.emulateJSON = true;

Back