vue.js - vue resource的$.http.post方法怎么会变成OPTIONS方法?

查看:287
本文介绍了vue.js - vue resource的$.http.post方法怎么会变成OPTIONS方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

代码如下:

以下是Chrome的网络请求:

官方的issue中我也发现了类似的问题,但是我还是没有解决,我试了下,$http.put和$http.delete都变成了OPTIONS方法,后端是使用express构建的REST API,代码如下:

'use strict'

const UserController = require('../controllers/user')

module.exports = app => {
  app.route('/api/users')
    .get(UserController.list)
    .post(UserController.create)

  app.route('/api/users/:uid')
    .get(UserController.get)
    .put(UserController.update)
    .delete(UserController.delete)

  app.param('uid',UserController.getById)
}

后端代码服务通过curl命令测试均能够得到正确的结果,应该不是后端的问题

解决方案

这是跨域问题,先把这个内容看完,否则你这个东西改起来无从下手。

简单来说,就是非简单请求在跨域时,浏览器会默认自动帮你发一个OPTIONS请求,到服务器端请求服务器确认该请求的合法性,服务器端必须得有相应的路由处理该请求,并认真返回200响应,然后浏览器才会再次发出正常的、你需要的请求。

解决跨域问题前,先理解跨域,认真面对这个问题,很重要

这篇关于vue.js - vue resource的$.http.post方法怎么会变成OPTIONS方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆