解决跨域问题

比眉伴天荒 2022-09-08 11:46 472阅读 0赞

解决跨域问题

这个问题面试经常问,可是每次看完只会就不太记得,因此在这里记录一下,方便以后工(跳)作(槽)查看。


什么是跨域?
浏览器从一个域名的网页去请求另一个域名的资源时,域名,段口,协议任一不同,都是跨域。
域名
 主域名不同 http://www.baidu.com/index.html —>http://www.sina.com/test.js
 子域名不同 http://www.666.baidu.com/index.html —>http://www.555.baidu.com/test.js
 域名和域名ip http://www.baidu.com/index.html —>http://180.149.132.47/test.js
端口
http://www.baidu.com:8080/index.html–> http://www.baidu.com:8081/test.js
协议
http://www.baidu.com:8080/index.html–> https://www.baidu.com:8080/test.js
备注:
1.端口和协议的不同,只能通过后台来解决
2.localhost和127.0.0.1虽然都指向本机,但也属于跨域。
跨域限制
1.无法读取非同源网页的Cookie,LocalStorage和IndexedDB
2.无法接触非同源网页的DOM
3.无法向非同源地址发送AJAX请求(可以发送,但浏览器会拒绝接受响应)

如何使前端应用通过AJAX跨域访问后端应用呢?

这需要使用到CORS技术来实现,这也是目前最好的解决方案了。

CORS全称为Cross Origin Resource Sharing(跨域资源共享),服务器只需要添加相关响应头信息,即可实现客户端发出AJAX跨域请求。

CORS技术非常简单,易于实现,目前绝大多数浏览器均已支持该技术,服务端可通过任何编程语言来实现,只要能将CORS响应头写入response对象中即可。

发表评论

表情:
评论列表 (有 0 条评论,472人围观)

还没有评论,来说两句吧...

相关阅读

    相关 解决问题

     问题产生:前端页面地址跟接口地址域名不一样。  问题解决:前端页面请求的请口地址域名,保持跟页面地址的域名一致,然后在前端项目所在的nginx中进行请求的转发,将请求转发到

    相关 解决问题

    解决跨域问题 这个问题面试经常问,可是每次看完只会就不太记得,因此在这里记录一下,方便以后工(跳)作(槽)查看。 -------------------- 什么是跨域

    相关 解决问题

    背景:外机访问本机端口的时候会产生跨域的问题,这个时候就需要解决跨域。 代码编写: import org.springframework.context.annot