ajax跨域问题

1、当前域名的文件,通过ajax向其它域名的的主机请求数据时,浏览器就会拒绝这个发送,在浏览器这边就给阻止了。(浏览器同源策略)

  在浏览器中直接输入接口的请求地址,并没有产生跨域请求的问题。浏览器 URL地址 上就是对方的域名,没有跨什么域。

  所以浏览器上直接输入请求地址是可以正常请求数据的。https://segmentfault.com/q/1010000006690231?_ea=1098441

  注: 跨域限制是浏览器行为(针对ajax的行为),不是服务器行为   https://blog.csdn.net/u012881904/article/details/79236475

  跨域的判定流程  :  https://blog.csdn.net/z69183787/article/details/53102912 

  (感悟): 有点类似门卫的作用,是公司的人(同源)可以直接进去,不是公司人(不同源)的需要和公司负责人(服务器)请示下是不是可以让进去

2、https协议下网页,标签中src资源也必须是https协议,不然会出现加载资源解决的情况。(这个是不是后端做了限制还不清楚)

3、跨域问题,也可以纯后端处理,前端完全不用做什么。比如请求第三方接口(天气、新闻),可以直接使用ajax请求数据。而不用解决跨域请求的问题。

  https://segmentfault.com/q/1010000015482213

4、跨域请求出现 OPTIONS 请求的问题及解决方法:https://www.cnblogs.com/xiaozengzeng/p/10852224.html

5、如果服务端允许跨域,前端是可以直接跨域请求的(不知道是不是http协议改变了,以前好像不可以的)。  https://segmentfault.com/q/1010000007665348 

   说明:标准是要求浏览器必须先以 OPTIONS 请求方式发送一个预请求(preflight request),从而获知服务器端对跨源请求所支持 HTTP 方法。

      在确认服务器允许该跨源请求的情况下,以实际的 HTTP 请求方法发送那个真正的请求。 

跨域解决方案

参考:https://www.cnblogs.com/roam/p/7520433.html

   https://www.cnblogs.com/2050/p/3191744.html

   扩展阅读

如果在生产线不需要跨域;只是在开发的时候,因为前后端分离导致前后端不在一个域中而引起的跨域访问问题直接对浏览器进行设置

推荐跨域解决方案:谷歌浏览器  可以直接设置浏览器解决跨域问题。参考:https://jingyan.baidu.com/article/148a1921c9dbf24d71c3b11f.html

原文地址:https://www.cnblogs.com/wfblog/p/9014712.html