前端包部署到线上net::ERR_SSL_PROTOCOL_ERROR(跨域/同源策略)

这篇具有很好参考价值的文章主要介绍了前端包部署到线上net::ERR_SSL_PROTOCOL_ERROR(跨域/同源策略)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

部署到线上报错一堆文件:
js、css、html报如下错误

net::ERR_SSL_PROTOCOL_ERROR

1.因为服务器用的域名有:https、http两种
部署到线上地址,https开头用第一行代码,http用第二行代码
(本地启用项目一般都是http开头,用第二行代码即可,但线上是https开头,部署时需要更换为下面第一行代码)

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> 
<meta http-equiv="Content-Security-Policy"> 

前端包部署到线上net::ERR_SSL_PROTOCOL_ERROR(跨域/同源策略)

2.跨域详解(包含同源策略)
1.上面遇到的问题呢就是同源策略问题。那什么是同源策略呢?

答:所谓同源是指,域名,协议,端口相同。“同源策略“:简单的说就是基于安全考虑,当前域不能访问其他域的东西。

“同源策略“就属于跨域的一种,解决跨域方法呢,除了后台走negix代理外,前端也可以使用JSONP的方式请求接口,jsonp只支持get请求 。但是不推荐使用JSONP ,因为不安全。
(JSONP 是从其他域中加载代码执行。如果其他域不安全,很可能会在响应中夹带一些恶意代码,造成服务器崩溃、数据泄露等问题,没有办法追究。因此在使用不是你自己运维的 Web 服务时,一定得保证它安全可靠。)

下面这张图一眼就可以看出来同源策略问题
图片转自:http://blog.csdn.net/u014607184/article/details/52027879 前端包部署到线上net::ERR_SSL_PROTOCOL_ERROR(跨域/同源策略)
3.浏览器跨域类别:
由于浏览器将CORS请求分为两类:简单请求(simple request)和非简单请求(not-simple-request)。非简单请求会在正式通信之前,增加一次HTTP请求,称之为"预检"请求(preflight)。浏览器会先发起OPTIONS方法到服务器,以获知服务器是否允许该实际请求。
如果第一次请求就 报错 或者 报跨域,那么你可以让后台看看是不是她那边抛出异常了。
(非简单请求是那种对服务器提出特殊要求的请求,比如请求方法是PUT或DELETE,或者Content-Type字段的类型是application/json。
详细的CROS请求,本人自己百度的:https://javascript.ruanyifeng.com/bom/cors.html#toc5)

4.JSONP方法
(1)下载jsonp

npm install vue-jsonp --save
npm uninstall vue-jsonp  //卸载命令

(2)vue/uniapp项目 main.js 中引入、使用

import { VueJsonp } from 'vue-jsonp'
Vue.use(VueJsonp)

(3-1)页面使用
这里是为了获取省市区名称、编码,请求腾讯地图:逆地址解析接口

腾讯地图api地图地址如下
https://lbs.qq.com/service/webService/webServiceGuide/webServiceGcoder
 this.$jsonp('https://apis.map.qq.com/ws/geocoder/v1/' , {
    location: '39.984154,116.307490',
	key:"xxxxxx",
	get_poi:1,
	output: 'jsonp',//因为外部链接,腾讯要处理跨域,必须有
 }).then((res)=>{
  	 console.log(res,'返回数据----------------')
 })

好不容易干到半夜12点解决了跨域,结果被浏览器CORE阻止了,真******的。还好问了同事,请求地址加上这个参数output: ‘jsonp’, 就可以了

(3-2)下载完jsonp页面内使用-转载于:

 https://www.jianshu.com/p/720e453ca27d

附录:http和https区别
http含义:超文本传输协议,常基于TCP/IP协议传输数据,www必须遵守的标准,设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。请求方式:PATCH、HEAD、 OPTIONS、put、delete、get、post、
1、http不安全,https的对数据进行了加密,再发送到服务器,不会被第三方截获;内容进行了加密,保护了数据的完整性(防止被篡改);身份验证 2、HTTPS网站将会作为搜索排名的一个重要权重指标。也就是说HTTPS网站比起HTTP网站在搜索排名中更有优势。 什么情况下使用http, 什么情况下使用https?????????
一般的话用http,需要加密的用户信息、涉及资金的用htttps;
更多如下: HTTPS连接缓存不如HTTP高效,流量成本高。 HTTPS连接服务器端资源占用高很多,支持访客多的网站需要投入更大的成本。 HTTPS协议握手阶段比较费时,对网站的响应速度有影响,影响用户体验。比较好的方式是采用分而治之类似12306网站的主页使用HTTP协议,有关于用户信息等方面使用HTTPS。文章来源地址https://www.toymoban.com/news/detail-408697.html

到了这里,关于前端包部署到线上net::ERR_SSL_PROTOCOL_ERROR(跨域/同源策略)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一文详解:传统企业如何把进销存管理流程搬到线上?

    进销存管理 是企业管理的核心流程之一,它有助于提高效率、降低成本、增加盈利,同时确保客户满意度,这对于企业的 长期成功和竞争力 至关重要。但在信息化转型的浪潮下,很多企业的传统进销存流程却遇到不少问题。 如果你也在考虑把进销存流程搬到线上,那么请花

    2024年02月05日
    浏览(43)
  • 前端报错net::ERR_ABORTED 404的解决方案

    本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 在IDEA项目中添加了新的前端资源,例如:CSS、JS等。在页面中对新资源进行引用时报错net::ERR_ABORTED 404。 在此,提供几种该问题的常见解决方法。 请检查资源引入的路径;确保资源路径的准确。 请保证引入JS时

    2024年02月15日
    浏览(37)
  • 前端请求报错net::ERR_INCOMPLETE_CHUNKED_ENCODING

    项目后端程序运行环境为centos7.6。 首先是前端页面中大小为160多KB以上的图片均无法加载,且后端程序捕获到异常 IOException,查看前端请求发现内存较大的图片均请求响应状态为200,但返回 failed,net::ERR_INCOMPLETE_CHUNKED_ENCODING,并且后端频繁出现tcp管道断开重连异常 ①考虑较

    2024年02月04日
    浏览(64)
  • 前端线上部署,如何通知用户有新版本

    version-polling  是一个轻量级的  JavaScript  库,它可以实时检测  web  应用的  index.html  文件内容是否有变化。当服务端发布新版本后,前端会自动弹出更新提示,让用户刷新页面,以加载最新的资源和功能。这样可以提高用户体验和数据准确性。 为了解决后端部署之后,如

    2024年02月08日
    浏览(49)
  • 【前端遇错】DevTools 无法加载 SourceMap 错误:状态代码 404,net::ERR_HTTP_RESPONSE_CODE_FAILURE

    问题描述: 出现以下错误信息: DevTools 无法加载 SourceMap: 无法加载 http://****/static/rooted/js/jquery.min.map: 的内容HTTP 错误:状态代码 404,net::ERR_HTTP_RESPONSE_CODE_FAILURE 原因分析: sourceMap,调试代码,从打包后的代码映射到源码,并在前端使用注释声明。对项目的运行没有影响。

    2024年02月11日
    浏览(53)
  • nodejs前端项目部署到k8s,导致线上故障的排查与解决方法

    因我们的前后端项目都部署在k8s集群中,前端项目采用npm和node管理 事故背景: 某天前端同事在测试环境更新完一个前端服务后,访问正常,然后按照正常流程上线到生产环境,但是,在生产环境更新完成后,测试同事反馈访问报502错误,我就去服务器排查刚才发布的服务,检查pod状态

    2024年02月02日
    浏览(43)
  • 关于.NET6后端程序(api)部署ssl证书的问题(https) 解决ing

    首先 一般情况下,后端不用https,但vs默认创建工程时,很容易勾选,这是需要将https改为http 改两处 一、把program.cs的 //app.UseHttpsRedirection(); 注释了 二、launchSettings里的iisSettings中 443改为0 再加一处 launchSettings的\\\"applicationUrl\\\": \\\"http://localhost:5001\\\"需要把s删掉 如果不改 用post会默认

    2024年01月17日
    浏览(62)
  • 记一次 Redisson 线上问题 → ERR unknown command 'WAIT' 的排查与分析

    昨晚和一个朋友聊天 我:处对象吗,咱俩试试? 朋友:我有对象 我:我不信,有对象不公开? 朋友:不好公开,我当的小三 程序在生产环境稳定的跑着 直到有一天,公司执行组件漏洞扫描,有漏洞的  jar  要进行升级修复 然后我就按着扫描报告将有漏洞的  jar  修复到指

    2024年02月09日
    浏览(57)
  • java项目实现读写分离,项目连接Linux部署的数据库异常javax.net.ssl.SSLHandshakeException: No appropriate protocol

    1、对项目进行优化实现读写分离,项目启动时报错如下: Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) 原因:javax.net.ssl.SSLHandshakeException:没有适当的协议(协议被禁用或密码套件不合适) 2、bug解决:     注意: useSSL=f

    2024年02月04日
    浏览(52)
  • 【.NET6 + Vue3 + CentOS7.9 + Docker + Docker-Compose + SSL】个人博客前后端运维部署

    个人博客 前端:https://lujiesheng.cn 个人博客 后端:https://api.lujiesheng.cn 个人博客 运维:https://portainer.lujiesheng.cn 我采用的是 腾讯云轻量应用服务器(2C 4G 8M 80G),配置如下图: 安装镜像选择 CentOS 7.6 64bit: 添加防火墙出入站规则,设置如下图: 把已备案的域名解析到服务器

    2024年02月14日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包