Javascript Ajax";邮政「;不在iOS中工作

Javascript Ajax";邮政「;不在iOS中工作,javascript,ios,ajax,post,cocoonjs,Javascript,Ios,Ajax,Post,Cocoonjs,我在Javascript、AJAX和向服务器发送“POST”信息方面遇到了一个奇怪的问题。。。我正在从事一个HTML5/Javascript(纯JS,无jQuery!)游戏,该游戏通过CocoonJS在iOS和Android上运行。我需要使用POST方法将一些东西传递给服务器脚本(非GET):在Android设备(Nexus 5)上测试时工作正常,但在iOS设备(iPhone4和iOS 7的iPhone5)上测试时,服务器端脚本没有收到任何东西(虽然使用的方法与Android中的方法完全相同)

我在Javascript、AJAX和向服务器发送“POST”信息方面遇到了一个奇怪的问题。。。我正在从事一个HTML5/Javascript(纯JS,无jQuery!)游戏,该游戏通过CocoonJS在iOS和Android上运行。我需要使用POST方法将一些东西传递给服务器脚本(非GET):在Android设备(Nexus 5)上测试时工作正常,但在iOS设备(iPhone4和iOS 7的iPhone5)上测试时,服务器端脚本没有收到任何东西(虽然使用的方法与Android中的方法完全相同)

我读过一些关于Safari缓存“帖子”之类的东西,但我不知道这与我的问题有什么关系,因为我正在使用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调用返回时没有错误

这些函数在代码的另一部分中调用,要传递的
数据
日志显示应发送到服务器的预期数据…但是,当尝试在服务器脚本中记录它时

<?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);

如果您使用的是Canvas+,请尝试从Canvas+环境中发布,如果它不起作用,请在WebView中尝试。两者中的一个应该都起作用:)

由于浏览器跨域策略,这可能不起作用。我实际上在我的PHP中添加了一个“header”部分:
header(“访问控制允许源代码:{$\u SERVER['HTTP\u Origin']}"); 标题('Access-Control-Allow-Credentials:true');标题('Access-Control-Max-Age:86400'),因为几天前我遇到了CORS的问题,但是问题解决了。奇怪的是,安卓系统运行得很完美,但iOS系统却不行。。。我该怎么解决呢?