关于程序员:如何解决跨域问题
<article class=“article fmt article-content”><h2>跨域</h2><h3>何为跨域?</h3><p>这就须要理解浏览器的同源策略,所谓同源是指 ‘协定+域名+端口’三者雷同,而跨域就是非同源的申请</p><h3>如何解决?</h3><ul><li><p>通过代理来防止,如应用nginx在后端转发申请,来防止前端呈现跨域</p><p>在server块中减少</p><pre><code># 容许跨域申请的域,*代表所有add_header ‘Access-Control-Allow-Origin’ *;# 容许带上cookie申请add_header ‘Access-Control-Allow-Credentials’ ’true’;# 容许申请的办法 GET POST等add_header ‘Access-Control-Allow-Methods’ *;# 容许申请的headeradd_header ‘Access-Control-Allow-Headers’ *;</code></pre></li></ul><ul><li><p>应用jsonp</p><p>浏览器的同源策略不蕴含<script>、<img>、<iframe>这几个标签,而jsonp就是利用<script>标签跨域个性来进行的跨域数据拜访,其原理是与服务器端约定好一个函数名,服务端接管到申请后,将返回一段JavaScript,在这段JavaScript代码中调用约定好的回调函数,并且将数据作为参数进行传递,当网页接管到这段JavaScript后,就会执行回调函数,数据就胜利传输到客户端了</p><p>其毛病是只反对GET申请</p></li><li><p>在web我的项目中配置过滤器或拦截器来解决跨域</p><pre><code class=“java”>httpServletResponse.setHeader(“Access-Control-Allow-Origin”, origin);httpServletResponse.setHeader(“Access-Control-Allow-Credentials”, “true”);httpServletResponse.setHeader(“Access-Control-Allow-Methods”, “POST, GET, OPTIONS”);httpServletResponse.setHeader(“Access-Control-Allow-Headers”, “Origin, X-Requested-With, Content-Type, Accept”);</code></pre><blockquote>https://zhhll.icu/2023/javaweb/问题/8.跨域/</blockquote></li></ul><p>本文由mdnice多平台公布</p></article>