在浏览器中,由于浏览器的同源策略限制,不同域名、不同端口、不同协议的请求会被视为跨域请求,需要进行跨域处理。

在上述代码中,如果在浏览器中直接访问https://genshinvoice.top/api,会触发跨域请求,但是由于在Unity中使用了UnityWebRequest.Get方法发送请求,UnityWebRequest是Unity自带的网络请求库,它的请求不受浏览器的同源策略限制,因此不会出现跨域请求。

如果要让Unity下面的代码在浏览器中发起跨域请求,可以使用以下方法:

  1. 在服务器端设置跨域请求头:在服务器端的响应中添加Access-Control-Allow-OriginAccess-Control-Allow-Methods等跨域请求头,允许浏览器跨域访问。

  2. 使用代理:在Unity项目中使用代理服务器,将跨域请求转发到代理服务器上,然后由代理服务器发送请求到目标服务器,返回结果给Unity。这样可以绕过浏览器的同源策略限制。

注意:在使用代理时,需要在代理服务器上进行跨域请求的处理,将目标服务器返回的响应结果转发给Unity。

另外,需要注意的是,使用代理可能会增加请求的延迟,并且需要确保代理服务器的稳定性和安全性。

为什么下面的代码中httpsgenshinvoicetopapi没有出现跨域请求明明是不同服务器。但是unity打包webgl就会跨域如何修改下面的代码让请求与上面的请求样式也同源? speakerSelectaddEventListenerchange function const selectedSpeaker = speakerSelectoptions

原文地址: http://www.cveoy.top/t/topic/javG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录