说一说什么是跨域?如何解决跨域问题?

跨域:当前页面中的某个接口请求的地址和当前页面的地址如果协议、域名、端口有一项不同,就说明跨域了。

跨域限制的原因:浏览器为了保证网页的安全,出台了同源协议策略。

跨域报错信息:

跨域解决方案:

CORS:目前最常用的一种解决方案,通过设置后端允许跨域实现(在服务端响应客户端的时候,请求头中带上Access-Control-Allow-Origin,“*”)。

// 设置允许跨域访问该服务, cors
app.all('*', function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
    res.header('Access-Control-Allow-Headers', 'Content-Type','mytoken');
    next();
});

JSONP:实现原理:1、动态创建一个script标签。2、将目标数据的地址放到script标签的src属性中,并在请求地址中拼接callback参数并携带回调函数名。3、定义回调函数,当数据请求成功之后,回调函数被调用。 JSONP有着明显的缺点,即其只能支持GET请求

代理:

// vue 的开发服务器代理配置
// vue.config.js
module.exports = {
  devServer: { // 配置开发服务器
    proxy: { // 配置代理
      "/api": { // 若请求路径以 /api 开头
        target: "http://dev.taobao.com", // 将其转发到 http://dev.taobao.com
      },
    },
  },
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值