Unity webgl跨域问题 unity使用nginx设置跨域 ,修改请求头

先生沉默先 2024-10-22 14:03:22 阅读 91

在这里插入图片描述

跨域

什么是跨域

跨域是指浏览器因安全策略限制,阻止一个域下的网页访问另一个域下的资源。

一些常见的跨域情况:

协议不同

从 http://example.com 请求 https://example.com。域名不同

从 http://example.com 请求 http://anotherdomain.com。端口不同

从 http://example.com:80 请求 http://example.com:8080。子域不同

从 http://sub.example.com 请求 http://another.example.com。顶级域名不同

从 http://example.com 请求 http://example.org。

这些情况都会触发浏览器的同源策略,导致跨域问题。

为什么会有跨域

浏览器的安全机制,防止不同来源的恶意脚本窃取数据。

如何解决跨域

CORS(跨域资源共享)

通过服务器设置响应头,允许特定域的访问。JSONP

通过

nginx配置

<code> server {

listen 7963;

server_name localhost;

location / {

root html;

index index.html index.htm;

# 添加 CORS 头部

add_header Access-Control-Allow-Origin *;

add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';

add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

# 处理预检请求

if ($request_method = 'OPTIONS') {

add_header Access-Control-Allow-Origin *;

add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';

add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

add_header Content-Length 0;

add_header Content-Type text/plain;

return 204;

}

}

查看服务器是否支持跨域

如果服务不支持跨域,再怎么设置nginx的请求头都是不行的!

如果服务不支持跨域,再怎么设置nginx的请求头都是不行的!

如果服务不支持跨域,再怎么设置nginx的请求头都是不行的!

如何查看服务器是否支持跨域

https://cn.bing.com/?mkt=zh-CN 为例

打开之后按下F12 ,切换到网络,刷新网页

滑倒最上面,看响应头中是否有:Access-Control-Allow-Origin *

在这里插入图片描述

或者使用post man,找一下有没有:<code>Access-Control-Allow-Origin *;, 有就是允许,没有就是不允许

在这里插入图片描述

很明显bing不允许。

允许的情况会:

在这里插入图片描述

在这里插入图片描述



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。