vuejs - 解决post请求变成option的请求问题.
访问量: 4033
参考: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;