3

そのため、Ajax を使用して JavaScript から PHP スクリプトに値を渡そうとすると、次のエラー メッセージが表示されます。

キャッチされていない SyntaxError: 予期しない入力の終わり

コードをステップ実行すると、スクリプトからの応答で null 文字列が返されることがわかりました。誰かが私の間違いを指摘してくれませんか、私はそれを理解できないようです.

ここに私のJavaScript(request.js)があります

var request;

function getHTTPObject()
{
    var xhr = false;
    if (window.XMLHttpRequest)
    {
        xhr = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        try
        {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
            try
            {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)
            {
                xhr = false;
            }
        }
    }
    return xhr;
}

function runAjax(JSONstring)
{
    // function returns "AJAX" object, depending on web browser
    // this is not native JS function!
    request = getHTTPObject();
    request.onreadystatechange = sendData;
    request.open("GET", "request.php?json="+JSONstring, true);
    request.send(null);
}

// function is executed when var request state changes
function sendData()
{
    // if request object received response
    if(request.readyState == 4)
    {
    // parser.php response
    var JSONtext = request.responseText;

    // convert received string to JavaScript object
    var JSONobject = JSON.parse(JSONtext);


    // notice how variables are used
    var msg = "Number of errors: "+JSONobject.errorsNum+
        "\n- "+JSONobject.error[0]+
        "\n- "+JSONobject.error[1];

    alert(msg);
    }
}

私のphpファイル。

<?php
//request.php
$decoded = json_decode($_GET['json']);

$json = array(
    'errorsNum'    =>    2,

    'error'       =>    array(
                        "error 1","error 2!"
                 )
);

$encoded = json_encode($json);

die($encoded);

?>

最後に、ajax を呼び出す html ファイルです。

<html>
<head>
<script src="request.js">
</script>
</head>
<body>
<a href="Javascript:runAjax('vinoth')">call</a><br>
</body>
</html>

前もって感謝します。

4

0 に答える 0