ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

什么是跨域?跨域解决方法

2022-09-16 09:32:08  阅读:317  来源: 互联网

标签:浏览器 跨域 Ajax 同源 解决 http 方法 localhost


一、什么是跨域

CORS全称Cross-Origin Resource Sharing,意为跨域资源共享。当一个资源去访问另一个不同域名或者同域名不同端口的资源时,就会发出跨域请求。如果此时另一个资源不允许其进行跨域资源访问,那么访问就会遇到跨域问题。

跨域指的是浏览器不能执行其它网站的脚本。是由浏览器的同源策略造成的,是浏览器对JavaScript 施加的安全限制。

二、同源策略

同源策略,是由 Netscape 提出的一个安全策略,它是浏览器最核心也是最基本的安全功能,如果缺少同源策略,则浏览器的正常功能可能都会受到影响,现在所有支持JavaScript的浏览器都会使用这个策略。

规定:浏览器要求,在解析Ajax请求时,要求浏览器的路径与Ajax的请求的路径必须满足三个要求,则满足同源策略,可以访问服务器。

要求:

协议、域名、端口号都相同,只要有一个不相同,那么都是非同源

三、同源策略案例

案例1:
1.浏览器地址 http://localhost:8090/aa
2.Ajax请求地址 http://localhost:8090/bb

满足同源策略.服务器可以正常访问.

案例2:
1.浏览器地址 http://localhost:8091/aa
2.Ajax请求地址 http://localhost:8090/bb

不满足同源策略. 端口号不同. 属于跨域请求.

案例3:
1.浏览器地址 http://localhost:8090/aa
2.Ajax请求地址 https://localhost:8090/bb

不满足同源策略. 协议不同. 属于跨域请求.

案例4:
前提: IP与域名映射
1.浏览器地址 http://www.baidu.com/aa
2.Ajax请求地址 http://localhost/bb

不满足同源策略. 域名不同.

案例5:
1.浏览器地址 http://localhost:80/aa
2.Ajax请求地址 http://localhost/bb

满足同源策略. http协议,默认端口为80

案例6:
1.浏览器地址 https://10.0.1.1/findAll
2.Ajax请求地址 https://10.0.1.1:443/aaaa
满足同源策略,https协议默认端口为443

四、跨域解决方法

1.ajax的jsonp

JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。 由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的

返回值语法固定的:callback(JSON数据)

2.CORS方式

说明:CORS(Cross-origin resource sharing) “跨域资源共享”,现在的主流的浏览器都支持cors的方式。

如果需要跨域,则需要配置响应头信息,标识是否允许。

3.nginx 转发

利用nginx反向代理,将请求分发到部署相应项目的tomcat服务器,当然也不存在跨域问题

标签:浏览器,跨域,Ajax,同源,解决,http,方法,localhost
来源: https://www.cnblogs.com/echohye/p/16698690.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有