Unity3d + WebGL = 跨域请求被阻止

标签 unity3d parse-platform cors

我想知道是否有人可以简要解释一下如何让 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/

相关文章:

c# - 将 Unity 更新到 5.6 beta 后,TextMesh Pro 统一插件停止工作

ios - RegisterMonoModules.cpp 需要编辑以修复错误 : #endif without #if#endif

c# - 为双边移动统一镜像 Oculus Rift Controller 位置

Unity3D - 在 2d 场景中嵌入 3d 场景

javascript - 如何使解析查找/保存操作同步?

ios - 如何在 Swift 中检查 PFQuery 结果是否为 true

Android服务在推送通知发送时启动并在服务任务完成后停止

html - CORS:Facebook 是否为其所有图片启用了 CORS?

asp.net - 允许 MVC 中的静态内容使用 CORS

javascript - 在请求 header javascript 中添加访问 Controller 和内容类型