हमें एंड्रॉइड 4.0, 4.1 और 4.2 (हमारे पास परीक्षण करने के लिए कुछ भी कम नहीं मिला है) में निर्मित ब्राउज़र के साथ समस्या हो रही है। समस्या यह है कि AJAX कॉल पहले लोड पर पूरी तरह से काम करेगा, आप जितनी बार चाहें उतना बार रन अजाक्स बटन दबा सकते हैं और यह ठीक होगा। आप इंटरनेट से डिस्कनेक्ट कर सकते हैं और यह ठीक से काम करेगा। लेकिन अगर आप बाहर निकलें (पूरी तरह से, सुनिश्चित करें कि यह सिर्फ पृष्ठभूमि में नहीं चल रहा है) ब्राउज़र फिर इसे फिर से लॉन्च करता है, यह लोड और बटन प्रेस पर असफल हो जाएगा। इससे कोई फर्क नहीं पड़ता कि आप ऑनलाइन हैं या ऑफलाइन हैं। AJAX कॉल से लौटाई गई त्रुटि स्थिति = 0 और readyState = 0.
के साथ "त्रुटि" है जब यह सफल होता है तो आपको एक संदेश वापस मिलता है "स्थिति = 200 के साथ" अजाक्स कॉल से राहत "और एक readyState = 4.jQuery अजाक्स के साथ एंड्रॉइड ब्राउज़र समस्या और जब एपकेच का उपयोग किया जाता है
कोड एंड्रॉइड क्रोम, फ़ायरफ़ॉक्स और ओपेरा पर परीक्षण किए गए हर दूसरे ब्राउज़र पर काम करता है। आईओएस 5 और 6 पर यह काम करता है और हम जो भी डेस्कटॉप ब्राउजर पा सकते हैं। क्या ऐसा कुछ है जो मुझे याद आ रहा है या हमने निर्मित ब्राउज़र में एक बग पाया है। इस पर कोई मदद की सराहना की जाएगी विशेष रूप से अगर यह सिर्फ कुछ बेवकूफ है।
हमने एक परीक्षण स्क्रिप्ट बनाई है जो इस समस्या को अच्छी तरह से प्रदर्शित करती है, मैंने इसे इस संदेश के निचले हिस्से से जोड़ा है।
धन्यवाद
टिम
test.php
<?php
function displayPage() {
?>
<!DOCTYPE html>
<html manifest="test.manifest" debug="true">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1" >
<title>test</title>
<script type="text/javascript" src="jquery-1.9.0.min.js"></script>
<script type="text/javascript">
function runAjaxGet() {
var XMLHttpRequest = $.ajax({
url: "test.php",
dataType: "json",
data: "test=test",
traditional: "true",
success: function(responseData) {
alert('good\n responseData: '+responseData+ '\n res:' + XMLHttpRequest.responseText +'\n readyState: '+ XMLHttpRequest.readyState + '\n Status: '+XMLHttpRequest.status);
console.log(XMLHttpRequest);
},
error: function (xhr, ajaxOptions, thrownError, responseData) {
alert('bad\n responseData: '+responseData+ '\n res:' + XMLHttpRequest.responseText +'\n readyState: '+ XMLHttpRequest.readyState + '\n Status: '+XMLHttpRequest.status);
console.log(XMLHttpRequest);
}
});
}
$(document).ready(function() {
runAjaxGet();
});
</script>
</head>
<body>
<button Name="Run Ajax" onclick="runAjaxGet();">Run Ajax</button>
</body>
</html>
<?php
}
function processRequests() {
header("Content-Type: application/json; charset=UTF-8");
echo (json_encode("respose from Ajax Call"));
}
date_default_timezone_set ("UTC");
if (isset($_REQUEST['test'])) {
$which = $_REQUEST['test'];
} else {
$which = '';
}
switch ($which) {
case "test":
processRequests();
break;
default :
displayPage();
break;
}
?>
test.manifest
CACHE MANIFEST
test.php
jquery-1.9.0.min.js
test.php?test=test