VUE axios发送跨域请求需要注意的问题


Posted in Javascript onJuly 06, 2017

在实际项目中前端使用到vue,后端使用php进行开发。前端使用axios请求请求

关于跨域

跨域的概念这些就不说了,百度一大堆相关的资料信息。我就只在这里记录下我在使用当中遇到的问题,以纪念在逝去的几个小时中资料查找的艰辛。

不多说,直接上代码~~~~

同理,跨域的解决方案为cros。服务器 PHP端代码如下(laravel 中间件进行处理):

public function handle($request, Closure $next)
  {

    if ($request->isMethod('OPTIONS')) {
      $response = response('', 200);
    } else {
      $response = $next($request);
    }
    if (!method_exists($response, 'header')) {
      return $response;
    }
    $response->header('Access-Control-Allow-Methods', 'HEAD, GET, POST, PUT, PATCH, DELETE, OPTIONS');
    $response->header(
      'Access-Control-Allow-Headers',
      'Content-Type, Content-Length, Authorization, Accept, X-Requested-With, Token'
    );
    $response->header('Access-Control-Allow-Origin', '*');
    $response->header('Access-Control-Max-Age', 86400);
    return $response;
  }

Vue端 axios 请求:

axios.post('http://XXXX.com',{name:'test'});

这样写,在请求的时候就会遇到:

VUE axios发送跨域请求需要注意的问题

很坑爹有没有?明明是已经设置好了的啊,为毛是这样???

查找了很多资料才发现,axios在发送数据时需要字符串的方式进行发送,也就是说是放在form-data当中的。在实际项目中,为了方便,我引入了 qs 来帮助处理这块数据:

解决后的代码应该是:

import qs from 'qs';
axios.post('http://xxxxx.com',qs.stringify({name:'test'})).then(re=>{
  console.log(re);
});

OK,问题解决。明明感觉很简单,但是就是因为自己不懂,导致找了很久才知道原因,之前一直在折腾后台的设置,忽略了前端本身的处理。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript,jquery闭包概念分析
Jun 19 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
Jun 28 Javascript
Jquery响应回车键直接提交表单操作代码
Jul 25 Javascript
jQuery中toggle()函数的使用实例
Apr 17 Javascript
express文件上传中间件Multer详解
Oct 24 Javascript
vue2.x select2 指令封装详解
Oct 12 Javascript
Vue axios设置访问基础路径方法
Sep 19 Javascript
angularjs通过过滤器返回超链接的方法
Oct 26 Javascript
es6 filter() 数组过滤方法总结
Apr 03 Javascript
基于form-data请求格式详解
Oct 29 Javascript
vue 解决form表单提交但不跳转页面的问题
Oct 30 Javascript
原生js实现文件上传、下载、封装等实例方法
Jan 05 Javascript
vue-cli如何添加less 以及sass
Jul 06 #Javascript
微信小程序 跳转传递数据的实例
Jul 06 #Javascript
详解webpack进阶之插件篇
Jul 06 #Javascript
微信小程序 sha1 实现密码加密实例详解
Jul 06 #Javascript
AngularJS学习笔记之表单验证功能实例详解
Jul 06 #Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
Jul 06 #Javascript
AngularJS常见过滤器用法实例总结
Jul 06 #Javascript
You might like
无线电广播的开始
2002/01/30 无线电
php获取'/'传参的值简单方法
2017/07/13 PHP
js中复制行和删除行的操作实例
2013/06/25 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
2016/12/27 Javascript
BootStrap select2 动态改变值的方法
2017/02/10 Javascript
JavaScript Base64 作为文件上传的实例代码解析
2017/02/14 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
详解Angular 4.x NgTemplateOutlet
2017/05/24 Javascript
AngularJS实现进度条功能示例
2017/07/05 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
python for 循环获取index索引的方法
2019/02/01 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
2020/06/09 Python
python smtplib发送多个email联系人的实现
2020/10/09 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
2020/11/22 Python
幼儿园教师培训方案
2014/02/04 职场文书
运动会通讯稿200字
2014/02/16 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
医院科室评语
2015/01/04 职场文书
好人好事新闻稿
2015/07/17 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript