解决跨域问题

跨域问题指:

一个域名下的js脚本,没有经过允许是不能读取另一个域名内容。但浏览器不阻止你发送请求,只是限制读取响应的内容(保护服务器)

只限制的是js脚本,并不限制src,form表单提交之类的读取。就是说form表单提交不存在安全问题,ajax提交跨域存在安全问题。

其中一个不同,均为跨域:协议域名端口号

解决方案一:CORS-跨域资源共享

在服务器中设置一个允许跨域的头,允许客户端访问我们服务器

//允许的请求方式
Access-Control-Allow-Methods value=“OPTIONS,POST,GET”
//允许传递的请求
Access-Control-Allow-Headers value=“x-requested-with,content-type”
//允许请求的路径
Access-Control-Allow-Origin value=""

或选择nodejs中设置:

//nodejs设置跨域访问
app.all('‘, function(req, res, next) {
res.header(“Access-Control-Allow-Origin”, “*”);
res.header(“Access-Control-Allow-Headers”, “X-Requested-With”);
res.header(“Access-Control-Allow-Methods”, “PUT,POST,GET,DELETE,OPTIONS”);
res.header(“X-Powered-By”, ’ 3.2.1’);
res.header(“Content-Type”, “application/json;charset=utf-8”);
next();

解决方案二:代理跨域

webpack提供了devServer功能,在vue.config.js文件中,添加以下代码

devServer:{//nodejs开发的超简易服务器。为什么代理?因为,服务器与服务器没有跨域问题~
    proxy:{
      //发请求时,路径中带有/api,代理服务器就会工作。代理服务器找真实服务要数据
      //若请求路径中,没有/api,代理服务器就不会工作,不会进行转发
      '/api':{
        target:'http://gmall-h5-api.atguigu.cn',//target是提供数据的服务器地址
        pathRewrite:{'/api':''} //路径重写
      }
}}

解决方案三:JSONP

待了解哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值