gpt4 book ai didi

Unity3d + WebGL = 跨域请求被阻止

转载 作者:行者123 更新时间:2023-12-01 02:10:10 41 4
gpt4 key购买 nike

我想知道是否有人可以简要解释一下如何让 REST api 与构建到 WebGL 平台的 Unity3D 项目一起运行。我今天刚开始改变我的项目,认为我可以使用 REST 来解决 Parse 在我需要制作的 WebGL 构建中使用线程的问题。我很快就遇到了 CORS 问题并且不熟悉它,我不确定如何解决这个问题。

目前我使用 WWW 类从 Unity 内部发送请求。

用户“登录”的示例是:

        WWWForm form = new WWWForm();

var headers = form.headers;
headers["Method"] = "GET";
headers["X-Parse-Application-Id"] = AppID;
headers["X-Parse-REST-API-Key"] = RestID;
headers["X-Parse-Revocable-Session"] = "1";
headers["Content-Type"] = "application/json";

WWW www = new WWW("https://api.parse.com/1/login?username="+name+"&password="+password, null, headers);

这在编辑器中工作正常,但是在构建到 WEBGL 并上传到我的主机在 Parse 后,会发生以下情况...

我在 FireFox 中收到以下错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://api.parse.com/1/login?username=jleslie5159&password=Osulator5159!. This can be fixed by moving the resource to the same domain or enabling CORS.

在 Chrome 中也有类似的东西......

最佳答案

对于其他人,我解决了我的问题,如下所示:

WWWForm form = new WWWForm();
var headers = form.headers;
headers["X-Parse-Application-Id"] = "AppId";
headers["X-Parse-REST-API-Key"] = "RestKey";
headers["Content-Type"] = "application/json";
WWW www = new WWW("https://api.parse.com/1/login?username="+name+"&password="+password, null, headers);
while(!www.isDone)
yield return 1;

问题源于设置 "headers["Method"] = "GET""显然只允许发送某些 header 或触发 CORS 违规。我通过阅读浏览器控制台中的响应解决了这个问题,该响应指定了请求被阻止的原因。并且刚刚删除了有问题的标题。

关于Unity3d + WebGL = 跨域请求被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30090907/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com