构建游戏后,Unity WebGL POST请求不起作用

时间:2019-12-02 11:45:49

标签: unity3d unity-webgl unitywebrequest

我的统一的webGL Game在构建游戏后似乎并没有向服务器发送发布请求,但是在编辑器中工作正常。除此之外,还有其他事情要做吗?

IEnumerator PostRequestY(string url, string jsonToAPI)

{
    Debug.Log("--------------Game Data Sending --------------");
    var uwr = new UnityWebRequest(url, "POST");
    jsonToAPI = jsonToAPI.Replace("'", "\"");
    //Debug.Log(jsonToAPI);
    byte[] jsonToSend = new System.Text.UTF8Encoding().GetBytes(jsonToAPI);
    uwr.uploadHandler = (UploadHandler)new UploadHandlerRaw(jsonToSend);
    uwr.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
    uwr.SetRequestHeader("Content-Type", CONTENT_TYPE);
    uwr.SetRequestHeader("x-api-key", X_API_KEY);

    //Send the request then wait here until it returns
    yield return uwr.SendWebRequest();

    if (uwr.isNetworkError)
    {
        Debug.Log("Error While Sending Game Data: " + uwr.error);
        Debug.Log("URL ::: " + url);
        messageText.text = uwr.error;
    }
    else
    {
        //Debug.Log("Game Data Received: " + uwr.downloadHandler.text);
        string recievedMessage = uwr.downloadHandler.text;
        //Debug.Log("Respond for Game Data " + recievedMessage);
        messageText.text = uwr.downloadHandler.text +" & "+ accessToken;
    }
}

在编辑器中玩游戏时出现此消息...

This message appears when the game is played in the editor...

在构建后玩游戏时出现此消息。 enter image description here

为什么会这样? 任何建议将不胜感激... 谢谢

1 个答案:

答案 0 :(得分:0)

在Unity WebGL中,基础Web请求使用fetchXMLHttpRequest完成,这意味着您必须在服务器上正确配置CORS。默认情况下,您几乎不能设置任何请求标头。

有关更多信息,请参见https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader