Ajax“POST"不能在iOS上运行
Ajax "POST" not working in iOS
我有一个奇怪的问题与Javascript, AJAX和发送"POST"信息到服务器…我正在制作一个HTML5/Javascript(纯JS, 没有jQuery!)游戏,通过CocoonJS在iOS和Android上运行。我需要使用POST方法(不是GET)传递一些东西到服务器脚本:它在Android设备(Nexus 5)中测试它时工作完美,但是,当在iOS设备 (iPhone 4和5与iOS 7)中测试它时,服务器端脚本接收不到任何(尽管使用的方法与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);
消息完全为空,因此GET
, POST
和GLOBALS
都没有捕获任何东西…我假设,我的应用实际上没有发送任何东西。然而,由于相同的代码在Android设备上工作,我不知道我可能做错了什么…
有谁知道会发生什么,我该如何解决它吗?
提前感谢您的时间和精力!:)
如果您正在使用Canvas+,请尝试从Canvas+环境中POST,如果它不起作用,请在WebView中尝试。两者中的一个应该都能工作:)
相关文章:
- 无法在iOS模拟器上运行简单的基于KineticJs的Cordova/PhoneGap应用程序
- Meteor应用程序突然不再在iOS上运行
- 如何仅在设备基于 iOS 时运行 jQuery 代码
- 全屏API无法在Chrome/iOS上运行
- 在iOS应用程序的分析云代码上运行crypto-js的问题
- Cordova应用程序在安卓系统上运行,但线程似乎在ios上冻结了;“由于页面加载而重置插件”;
- Phonegap内部版本:应用程序无法在iOS上运行
- removeClass无法在iOS v2上运行
- 运行IOS自动化脚本时需要查找崩溃
- 从运行 JavaScript 中排除 iOS
- 流星运行ios --冗长
- 自动滚动到目标,iOS 中的 jQuery 运行得太远
- Sencha Touch应用程序在Android和iOS上运行良好,但在Windows 8.1上挂起
- 每次加载新页面时,在iOS webView中运行JS
- SimpleWeather.js位置更新无法在iOS设备上运行
- Phonegap简单javascript未运行(onClick问题?)-Android和iOS都有
- Parse.Cloud在iOS上运行缓慢
- FileReader无法在iOS 8上运行
- 使用webkit运行iOS应用程序时延迟选择
- 我的javascript代码在pc上运行,但没有;t在android或ios上运行