vue跨域问题的三种解决方案_前端解决ajax跨域问题的方式

vue跨域问题的三种解决方案_前端解决ajax跨域问题的方式axios跨越问题解决的三种方法

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

axios:读音「艾科C藕丝」

方法一:SpringBoot后端进行处理

在 每个 Controller 类上加入 @CrossOrigin 注解
或者在 Controller的基类中加上 @CrossOrigin 注解然后其他 Controller 类就有了这个 @Controller 此时跨域访问就不会报错了。

浏览器 在同一个页面访问不同的域 是存在跨域问题的
但 服务器之间的访问是 没有跨域问题 因为服务器之间的请求不走XHR(XMLHttpRequest)

方法二: 需要在前端设置代理, 通过代理访问 SpringBoot后端API

1.在 src / utils / request.js 中配置
baseUrl: ‘http://127.0.0.1:8020/myhd’
2.在 vue.config.js 中配置Proxy

'': {
 	 target:  'http://127.0.0.1:8020/myhd'
	},
'/apiout': { // 外网
  target: 'https://myhd-outer-ui.cloud.castc.cn',
  changOrigin: true, // 允许跨域
  pathRewrite: {
    '^/apiout': ''
  }
},

配置代理方式只能解决npm run dev开发时的跨域问题,运行npm run build将项目打包到dist目录后只能通过nginx代理来解决跨域问题

方法三: 使用jsonp解决跨域(只能解决get方式跨域问题,不推荐)

方法:在ajax请求中加入配置项 dataType : 'jsonp',
原理仅作了解:请求的网址自动变成http://www.tpadmin.com/proj/method?callback=jQuery331015214102388989237
这是为什么呢?原来由于跨域访问的只限制xhr类型的请求,所以js中就利用了这一特点,让服务端不在返回的是一个JSON格式的数据,而是返回一段JS代码,将JSON的数据以参数的形式传递到这个函数中,
而函数的名称就是callback参数的值,所以我们还需要修改服务端的代码,修改参数解析方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188199.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MONTHS_BETWEEN函数「建议收藏」

    MONTHS_BETWEEN函数「建议收藏」 MONTHS_BETWEEN函数MONTHS_BETWEEN(x,y)用于计算x和y之间有几个月。如果x在日历中比y早,那么MONTHS_BETWEEN()就返回一个负数。注意:在调用MONTHS_BETWEEN函数时,日期的次序非常重要:如果想让结果为正数,稍晚的时间必须出现在前面。下面这个例子显示了2008年5月25日和2008年1月15日之间相差的月数。注意由于

    2022年7月12日
    23
  • SpringBoot上传文件类型检测「建议收藏」

    SpringBoot上传文件类型检测「建议收藏」判断文件类型的三种方式1.通过文件后缀名这个方法只要修改后缀名就可以了2.通过Content-Type判断由于Content-Type取决于文件类型,文件类型取决于文件扩展名,所以改变了文件扩展名也就改变了Content-Type3.通过文件头判断文件即使文件扩展名改变了文件头也不会改变

    2022年6月11日
    335
  • python 保留两位小数

    python 保留两位小数>>>a=1>>>b=3>>>print(a/b)0>>>#方法一:…print(round(a

    2022年7月5日
    18
  • Java判断闰年

    Java判断闰年importjava.util.Scanner;/**判断某一年是否为闰年*通过Scanner输入一个年份,然后判断该年是否是闰年*闰年判断标准(满足任何一个)*1.如果能够被4整除,但是不能被100整除*2.能够被400整除*/publicclassHelloWorld{ publicstaticvoidmain(String[]args){ while(true) { System.out.println(“请输入年份:”); Scanner

    2022年7月9日
    12
  • matlab导入文件夹里所有图片_如何创建快捷方式到指定文件夹

    matlab导入文件夹里所有图片_如何创建快捷方式到指定文件夹在matlab中,直接imwrite()保存图片,会保存到当前工作目录文件夹或其子文件夹。%直接保存imwrite(picture,’test1.png’)%在当前工作目录下新建文件夹并保存mkdirimage%如果文件夹已存在,会有警告,但不影响运行imwrite(picture,’image/test1.png’)如果要把图片保存到其他指定的文件夹,…

    2022年9月13日
    0
  • node.js 常用命令「建议收藏」

    node.js 常用命令「建议收藏」​​​​废话不多说,直接开干????基础命令,npm的一些重要命令,拿到就是赚到,有赞必回

    2022年7月16日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号