簡體   English   中英

Ajax“ POST”在iOS中不起作用

[英]Ajax “POST” not working in iOS

我在使用Javascript,AJAX時遇到了一個奇怪的問題,並將“ POST”信息發送到服務器...我正在使用HTML5 / Javascript (純JS, 沒有jQuery !)游戲,該游戲同時通過iOS和Android運行CocoonJS 我需要使用POST方法 (而不是GET)將某些內容傳遞給服務器腳本: 在Android設備(Nexus 5)中對其進行測試時,可以完美運行 ,但是在iOS設備 (具有iOS 7的iPhone 4和5)中對其進行測試時,可以完美地工作。 ), 服務器端腳本什么也不會收到 (盡管使用的方法與Android中的方法完全相同)...

我已經閱讀了有關Safari緩存“ POSTS”的內容,但是由於我正在使用CocoonJS,所以我不完全了解它與問題之間的關系。

發送之前,我一直在記錄信息,並且已經正確收集了; 但是,當嘗試從服務器端腳本進行記錄時,它為空...

這是我在客戶端所做的事情:

create_XHR: function(){
    var XHR = null;
    if (window.XMLHttpRequest){
        XHR = new XMLHttpRequest();
    }
    else if(window.ActiveXObject){
        try {
            XHR = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            XHR = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    else {
        alert("Your navigator is old to run objets XMLHTTPRequest...");
        XHR = false;
    }
    return XHR;
},

ajax_post: function(page, data, share) {

    var XHR = game.create_XHR();
    XHR.open("POST", page, true);
    XHR.onreadystatechange = function() {
        if (XHR.readyState === 4 && (XHR.status === 200 || XHR.status === 0)) {
                // Do some stuff here
            }
    };

    console.log("DATA TO BE PASSED: "+data.imgdata);

    XHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
    XHR.send(data.imgdata);
},

奇怪的是,AJAX調用返回時我正在做的“東西”實際上已經完成,因此AJAX調用返回時沒有錯誤...

這些功能在代碼的另一部分中被調用,並且“ DATA TO BE PASSED日志顯示了應發送到服務器的預期數據。但是,當嘗試將其記錄到服務器腳本中時...

<?php
$imageData = '';

if(isset($_POST['imgdata']))
{
    $imageData = $_POST['imgdata'];
}else if(isset($_GET['imgdata'])){
    $imageData = $_GET['imgdata'];
}else{
    $imageData = $GLOBALS['HTTP_RAW_POST_DATA'];
}

mail(MYMAIL,"LOG","POST: ".$_POST['imgdata']." \n GET: ".$_GET['imgdata']." \n GLOBALS: ".$GLOBALS['HTTP_RAW_POST_DATA']." \n IMGDATA: ".$imageData);

該消息是完全空的 ,因此GETPOSTGLOBALS都不會捕獲任何東西...那么,我認為我的應用程序實際上沒有發送任何東西。 但是,由於相同的代碼可以在Android設備上運行,所以我不知道自己做錯了什么...

誰知道會發生什么,我該如何解決?

在此先感謝您的時間和精力! :)

如果您使用的是Canvas +,請嘗試從Canvas +環境進行POST(如果它不起作用),請在WebView中進行嘗試。 兩者之一實際上應該工作:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM