前端跨域问题什么情况出现,具体该怎样解决
Admin 2022-08-10 群英技术资讯 824 次浏览
今天这篇我们来学习和了解“前端跨域问题什么情况出现,具体该怎样解决”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“前端跨域问题什么情况出现,具体该怎样解决”有一定的帮助。有这方面学习需要的朋友就继续往下看吧!出于浏览器的同源策略限制。同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。知识点:跨域只会出现在浏览器上,小程序和APP开发不会有跨域问题
说人话就是域名不同的时候会出现跨域。下面以 百度 域名为例,在域名的:协议、主机名、域名、端口 任何一个与当前访问的站点域名不同时就会出现跨域
https://www.baidu.com:443
出现跨域时,浏览器控制台的报错如下图所示
切记:本文章只讲述 前端解决跨域的办法,并且前端解决跨域问题只在本地开发时有效,项目发布线上需要前端服务器配置请求代理比如 nginx的反向代理 或 后端允许跨域请求
解决跨域的方法就是“欺骗”浏览器 或 删除浏览器限制
方法一:使用 HBuilderX 内置浏览器,内置浏览器是删除了浏览器的跨域限制的。
方法二:在项目根目录 manifest.json 文件中添加 h5 配置,点我 查看 uni-app 文档说明。
"h5" : {
"devServer":{
"proxy":{
"^/api":{
"target":"http://127.0.0.1:8081",
"ws": true,
"changeOrigin": true
}
}
}
}
页面请求代码示例
uni.request({
url:'/api/1.json', // url 要与 proxy 匹配,不能写成 xx.com/api.1.json
method:'GET',
success: (res) => {
console.log(res);
}
})
在项目根目录 vue.config.js 文件中添加如下配置
/* 开发环境配置 */
devServer:{
/* 代理目录 */
proxy:{
'^/api':{
target:'http://127.0.0.1:8081',
ws: true,
changeOrigin: true
}
}
}
页面请求代码,以 axios 库为例
request.get('/api/1.json',{
params
}).then(res=>{
console.log(res)
})
如果你的项目不是工程化的,比如 jQuery 技术栈的话用这种方式最简单粗暴
以 chrome 浏览器为例
【设置步骤】
新建一个 Chrome 的桌面快捷方式 在快捷方式上右键,点击【属性】,打开【属性】面板 在【属性】面板的【目标】中(chrome.exe 后面)按一下空格,再添加以下代码:
--args --disable-web-security --user-data-dir=D:\MyChromeDevUserData
或者
--disable-web-security --user-data-dir=D:\MyChromeDevUserData
设置成功以后再打开浏览器,会有提示:
“您使用的是不受支持的‘命令行’标记: --disable-web-security,稳定性和安全性会有所下降”
此时,正常用户都可以进行跨域访问了,比方本地的前端项目,直连测试或者线上环境的接口(前提是目标环境在当前浏览器登陆过,已经存在当前账号的cookies,session等信息)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Uniapp中使用Echarts的示例详解这里只举例折线图,介绍了uni-app微信小程序使用echarts的方法,下载echart组件,可以先随便建个文件夹,然后 npm init,接着下载依赖,需要的朋友可以参考下
本篇文章给大家带来了JavaScript中关于迭代器的相关知识,下面我们就一起来看一下什么是迭代器又怎样自定义迭代器,希望对大家有帮助。
虽然 vue-router 4 大多数 API 保持不变,但是在 vue3 中以插件形式存在,所以在使用时有一定的变化。接下来就学习学习它是如何使用的
前言过去有很长一段时间,我一直很难理解 reduce() 这个方法的具体用法,平时也很少用到它。事实上,如果你能真正了解它的话,其实在很多地方我们都可以用得上,那么今天我们就来简单聊聊JS中 reduce() 的用法。一、语法arr.reduce(function(prev,cur,index,arr){...}, i
今天给大家分享的是用Vue怎样实现实时获取天气的功能,而在在 vue 中,我们可以利用webSocket来做一个简单的天气实时更新,下文是实现效果及示例,感兴趣的朋友就继续往下看吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008