跨域浏览器设置解决前端跨域问题

 更新时间:2022年07月09日 17:21:05   作者:deepCode  
这篇文章主要为大家介绍了前端跨域浏览器设置解决前端跨域问题的方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

一、什么是跨域

出于浏览器的同源策略限制。同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。知识点:跨域只会出现在浏览器上,小程序和APP开发不会有跨域问题

二、什么情况下会出现跨域

说人话就是域名不同的时候会出现跨域。下面以 百度 域名为例,在域名的:协议、主机名、域名、端口 任何一个与当前访问的站点域名不同时就会出现跨域

https://www.baidu.com:443

出现跨域时,浏览器控制台的报错如下图所示

切记:本文章只讲述 前端解决跨域的办法,并且前端解决跨域问题只在本地开发时有效,项目发布线上需要前端服务器配置请求代理比如 nginx的反向代理 或 后端允许跨域请求

解决跨域的方法就是“欺骗”浏览器 或 删除浏览器限制

三、uni-app 项目 解决跨域办法

方法一:使用 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.js 项目 解决跨域办法

在项目根目录 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等信息)

以上就是跨域浏览器设置解决前端跨域问题的详细内容,更多关于跨域浏览器设置的资料请关注脚本之家其它相关文章!

相关文章

  • 利用JS实现窗口最大化和最小化效果

    利用JS实现窗口最大化和最小化效果

    在现代 Web 开发中,JavaScript 提供了多种方法来与浏览器窗口进行交互,包括最大化和最小化浏览器窗口,虽然浏览器通常会限制对窗口尺寸的直接控制,但我们依然可以实现一些常见的行为,本文将探讨如何使用 JavaScript 实现窗口的最大化和最小化效果
    2024-12-12
  • JavaScript躲避行星游戏实现全程

    JavaScript躲避行星游戏实现全程

    本文将使用 canvas 创建一个躲避小行星游戏。另外将重点介绍的两个方面是:如何使用 JavaScript 来检测键盘输入,以及如何在游戏中使用和处理 HTML5 音频。希望你能够喜欢
    2022-08-08
  • 一起来写段JS drag拖动代码

    一起来写段JS drag拖动代码

    记得几年前刚接触前端的时候,觉得能在网页上拖移元素是一件很爽的事,能写一段这样的代码是件很了不起的事情,于是乎google,baidu蛮多代码来学习,大致明白了思路,总结如下
    2010-12-12
  • js中call()和apply()改变指针问题的讲解

    js中call()和apply()改变指针问题的讲解

    今天小编就为大家分享一篇关于js中call()和apply()改变指针问题的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 基于JavaScript定位当前的地理位置

    基于JavaScript定位当前的地理位置

    这篇文章主要为大家详细介绍了基于JavaScript定位当前的地理位置,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • javascript 解决表单仍然提交即使监听处理函数返回false

    javascript 解决表单仍然提交即使监听处理函数返回false

    解决表单依旧提交即使监听处理函数返回false
    2010-03-03
  • uni-app调取接口的3种方式以及封装uni.request()详解

    uni-app调取接口的3种方式以及封装uni.request()详解

    我们在实际工作中要将数据传输到服务器端,从服务器端获取信息,都是通过接口的形式,下面这篇文章主要给大家介绍了关于uni-app调取接口的3种方式以及封装uni.request()的相关资料,需要的朋友可以参考下
    2022-08-08
  • js仿京东放大镜

    js仿京东放大镜

    这篇文章主要为大家详细介绍了js仿京东放大镜,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 原生JS控制多个滚动条同步跟随滚动效果

    原生JS控制多个滚动条同步跟随滚动效果

    本文要探讨的是,当这两个容器元素的内容都超出了容器高度,即都出现了滚动框的时候,如何在其中一个容器元素滚动时,让另外一个元素也随之滚动
    2017-12-12
  • [转]去百度面试的javascript 收获

    [转]去百度面试的javascript 收获

    前两天去了百度面试,1面是很顺利,2面基本是被问晕问傻问成了个白痴。没去之前,自己觉得自己的js还是可以的,但是被考官问的基本变成了白痴。
    2009-04-04

最新评论