为什么下面的代码中httpsgenshinvoicetopapi没有出现跨域请求明明是不同服务器。但是unity打包webgl就会跨域如何修改下面的代码让请求与上面的请求样式也同源? speakerSelectaddEventListenerchange function const selectedSpeaker = speakerSelectoptions
在浏览器中,由于浏览器的同源策略限制,不同域名、不同端口、不同协议的请求会被视为跨域请求,需要进行跨域处理。
在上述代码中,如果在浏览器中直接访问https://genshinvoice.top/api,会触发跨域请求,但是由于在Unity中使用了UnityWebRequest.Get方法发送请求,UnityWebRequest是Unity自带的网络请求库,它的请求不受浏览器的同源策略限制,因此不会出现跨域请求。
如果要让Unity下面的代码在浏览器中发起跨域请求,可以使用以下方法:
-
在服务器端设置跨域请求头:在服务器端的响应中添加
Access-Control-Allow-Origin和Access-Control-Allow-Methods等跨域请求头,允许浏览器跨域访问。 -
使用代理:在Unity项目中使用代理服务器,将跨域请求转发到代理服务器上,然后由代理服务器发送请求到目标服务器,返回结果给Unity。这样可以绕过浏览器的同源策略限制。
注意:在使用代理时,需要在代理服务器上进行跨域请求的处理,将目标服务器返回的响应结果转发给Unity。
另外,需要注意的是,使用代理可能会增加请求的延迟,并且需要确保代理服务器的稳定性和安全性。
原文地址: http://www.cveoy.top/t/topic/javG 著作权归作者所有。请勿转载和采集!