1

私はiPhone用のWebアプリを設計しています。ユーザーがボタンを押すと、3 つの値を含む JSON メッセージが Web サーバーに送信され、JSON ステータス応答が返されます。JavaScriptは以下です。

var args = {};
args.Val1 = parseInt(document.getElementById("Val1").value);
args.Val2 = parseInt(document.getElementById("Val2").value);
args.Val3 = parseInt(document.getElementById("Val3").value);
var jsonString = JSON.stringify(args);

if(window.XMLHttpRequest)           // code for IE7+, Firefox, Chrome, Opera,
{
    ajaxReq = new XMLHttpRequest();
}
else if(window.ActiveXObject)       // code for IE6, IE5
{
    ajaxReq = new ActiveXObject("Microsoft.XMLHTTP");
}

ajaxReq.onreadystatechange=function()
{
    if (ajaxReq.readyState==4 && ajaxReq.status==200)
    {
         rsp = JSON.parse(ajaxReq.responseText)
         if(parseInt(rsp.Status) == 0)
         {
            document.getElementById("Status").value = "OK"
         }
         else
         {
            document.getElementById("Status").value = "Fail"
         }
    }
}
ajaxReq.open("POST", "Handler.json", true);
ajaxReq.send(jsonString);

これをデスクトップ ブラウザ (Firefox または Chrome) でテストすると、問題なく動作します。サーバーはメッセージを取得し、ステータスを返し、ステータスが画面に表示されます。Safari を使用して iPhone でブラウジングすると、動作しません。ステータス応答が得られず、ブラウザが「ロックアップ」して、ボタンを押しても JSON メッセージが送信されないことがあります。

何か案は?

4

0 に答える 0