跨域问题011

网络保证浏览器安全,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源成为同源策略,是浏览器安全的基石;
同源就是2个页面相同协议,主机,端口号
当应该请求url的协议,域名,端口号有不同就不同源;

跨域问题解决
CORS请求
分为
简单请求:
GET,POST,HEAD
除了一下请求字段,没有自定义的请求头
accept,accept-language,content-language,last-event-id,content-type
content-type:
text/plain
multipart/form-data
application/x=www-form-urlencoded
非简单请求

对于简单请求

服务器会判断origin到底能不能访问
allow-origin:url

spring中可以对控制器
注解@CrossOrigin
我前端请求url都写错了,改了半天,才发现fuck
因为这是简单请求,
Access-Control-Allow-Origin:*

这样写会有问题

axios.get("http://localhost:8088/user/findAll").then(function(response){
      this.tableData = response.data;

因为this没有定义
因此我们使用方法,=>会自动继承父类的方法

踩坑
import axios from ‘axios’
要写到
script
里面不然不会生效

同时由于每个组件都会用到axios发送请求,此时url和import包会重复多次
可以通过全局配置解决
//配置根路径
axios.defaults.baseURL = “http://api.com”
//将axios作为全局的自定义属性,每个组件内部都可以访问(相当于每个组件都导入了)
app.config.globalProperties. h t t p = a x i o s ( v u e 3 的方法 ) V u e . p r o t o t y p e . http = axios (vue3的方法) Vue.prototype. http=axios(vue3的方法)Vue.prototype.http = axios (vue2的方法)

具体而言,我们可以在main导入axios
axios.defaults.baseURL=“http://localhost:8080”
Vue.prototype.$ http = axios(相当于我们队VUE定义了一个属性vue $ http = axios

之后,只要是vue对象,我们就可以用
$http代替axios

所以hello.vue不用导入包,并且可以使用
this.$http代替axios
同时url也可以使用相对地址

created:function(){
        this.$http.get("/user/findAll").then((response)=>{
        // axios.get("http://localhost:8088/user/findAll").then((response)=>{
        this.tableData = response.data
        })
    },
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值