首页>>前端>>JQuery->后端为什么涉及跨域?

后端为什么涉及跨域?

时间:2023-12-08 本站 点击:0

跨域是什么意思

问题四:什么是跨域访问 跨域访问就是你在一个域环境下阀访问另一个域的内容。跨域访问前提是彼此相互信任,不然是没法访问的。

联通公司为新老用户提供的可在异地办理的查交办业务,包括:异地补换卡、异地销户、异地合账交费、异地停/复机、异地开通/关闭国际权限、异地过户、异地信息查询、异地电子发票开具等。

有一种简明的说法来解释广域跨域:跨域访问,简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容。由于安全原因,跨域访问是被各大浏览器所默认禁止的。

后端解决前端跨域请求问题

可以使用服务器代理或者在后端设置允许跨域。现在的项目一般是在后端设置允许跨域,前端在带有允许跨域的情况下,可以像没有跨域一样正常访问。如果前端单独发布到服务器,也可以在服务器是设置代理,使用代理转发请求。

最便捷的还是使用nginx反向代理吧。例如,假设后端的ip和端口号为:191611222:8080,前端的ip和端口号为:191611222:8001,此时前后端端口不一致导致跨域。

服务端设置了Access-Control-Allow-Origin就开启了CORS,所以这种方式只要后端实现了CORS,就解决跨域问题,前端不需要配置。

前端通过http请求跨域的同时需要带上cookie信息,前端需要设置withCredentials = true。而后端也需要有所修改。

前后端分离架构下的跨域问题

1、对于前端来说,seesion字段是存在cookie中的。在跨域过程中,Cookie是默认不发送的。就算后端返回set-Cookie字段,前端也不会保存Cookie,更不会在下一次访问的时候发送到后端了。

2、在这个过程中,客户端浏览器始终面对的都是 Nginx,因此,请求页面的 index.html 和 AJAX 请求 /api/hello 都是发往了同一个服务器,自然就没有跨域问题。

3、前端的组件化、工程化,js 等代码越来越胖,有点类似于过去 C/S 时代的 fat client。

开发中为什么会出现跨域问题?(不是问什么是跨域

因为浏览器的同源政策,就会产生跨域。比如说发送的异步请求是不同的两个源,就比如是不同的的两个端口或者不同的两个协议或者不同的域名。

由于安全原因,跨域访问是被各大浏览器所默认禁止的。解决方案:js向服务器发送请求,然后让服务器去另一个域上获取数据后返回。(用于你无法控制另一个域) 比如php中利用cUrl。放置跨域文件.用JSONP。

跨域请求存在的原因:由于浏览器的同源策略,即属于不同域的页面之间不能相互访问各自的页面内容。

你在做本地开发的时候,你的文件夹下的文件不是在一个域下面的,当你一个文件需要发送ajax请求,请求另外一个页面的内容的时候,就会跨域。不是为什么要跨域,而是你如果不搭服务器,又想要ajax请求的话是不得不跨越。

在前端开发过程中,如果准备开发富应用,跨域的问题将会随之而来。

后端配置跨域

maxAge :准备响应前的缓存持续的最大时间(以秒为单位)。在这个例子中,对于retrieve()和remove()处理方法都启用了跨域支持,还可以看到如何使用@CrossOrigin属性定制CORS配置。

场景:前后端分离,页面和后端项目部署在不同服务器,出现请求跨域问题。

后端可以通过HtttpServletRequest的Header中找到Origin。是跨域地址的host加port。后端需要维护一个跨域URL的白名单,用Origin contains 匹配白名单的URL,成功则配置response 的 Access-Control-Allow-Origin,指定Origin。

针对前后端分离场景下的一种跨域方案,如果不使用如nginx或者springboot的zuul网关等方案,可以采用 httpproxy 方案。

服务端设置了Access-Control-Allow-Origin就开启了CORS,所以这种方式只要后端实现了CORS,就解决跨域问题,前端不需要配置。

例如,假设后端的ip和端口号为:191611222:8080,前端的ip和端口号为:191611222:8001,此时前后端端口不一致导致跨域。

什么是跨域、怎么解决跨域?

跨域是指浏览器允许向服务器发送跨域请求,从而克服Ajax只能 同源 使用的限制。

CORS是一个W3C标准,全称是跨域资源共享(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出 XMLHttpRequest 请求,从而克服了AJAX只能 同源 使用的限制。CORS需要浏览器和服务器同时支持。

有一种简明的说法来解释广域跨域:跨域访问,简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容。由于安全原因,跨域访问是被各大浏览器所默认禁止的。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/JQuery/18802.html