15

今日、jQuery と AJAX を使用してスクリプトを作成しましたが、いくつかエラーが発生します...

スクリプト:

function changeAdmin(id) {
$(document).ready(function() {
    $('#ta-modarea-'+id).fadeOut('fast');
    $('#ta-m-loading-'+id).fadeIn('fast');

    $.ajax({
        type: 'POST',
        url: 'ajax_utf.php?a=changeteamadmin',
        dataType: 'json',
        data: {
            admin : $('#admin-id-'+id).val()
        },
        success: function(data) {
            $('#ta-m-loading-'+id).fadeOut('fast');
            $('#ta-modarea-'+id).text(data.msg).fadeIn('fast');
        },
        error: function(jqXHR, textStatus, errorThrown) {
            $('#ta-m-loading-'+id).fadeOut('fast');
            $('#ta-modarea-'+id).text('HTTP Error: '+errorThrown+' | Error Message: '+textStatus).fadeIn('fast');
        }
    });

    return false;
});
}

実行後、次のエラー メッセージが表示されます。HTTP Error: SyntaxError: Unexpected token < | Error Message: parsererror

どうすればいいですか?

4

6 に答える 6

7

application/json次のように、 PHP 経由でヘッダーを送信する必要があります。

header('Content-type: application/json');

これは、jQuery が Accept ヘッダー ( ) を送信するためであり、これがによってトリガーされるapplication/json, text/javascript原因です。parseerrorjqXHR

于 2012-07-06T16:38:57.490 に答える
3

試す

 alert( jqXHR.responseText);

エラー関数で

于 2011-09-17T19:00:12.293 に答える
1

以下のコードを試してみてください。ただし、「Unexpected token <」のようなエラーが表示された場合は、php ファイル「ajax_utf.php」を確認し、ブラウザー (Chrome) で何が返されるかを確認する必要があります。タブ -> XHR。

ここに画像の説明を入力

         $.ajax({
                type: 'post',
                url: postLink,
                dataType: 'json',
                data: postData,

            beforeSend: function (x) {
                if (x && x.overrideMimeType) {
                    x.overrideMimeType('application/json;charset=UTF-8' );
                }
            },
            success: function (result) {
                //console.log(result);
            },
            error: function (xhr, ajaxOptions, thrownError) {
                console.log(arguments);
            }
        });
于 2016-04-08T01:05:23.673 に答える
1

contentType: "application/json; charset=utf-8",

于 2013-10-28T22:01:45.207 に答える
0

これは、PHP の連想/数値配列と Javascript オブジェクトの不一致の問題である可能性があります。

これを試して:

$data = new Array();
$data['test'][] = "Row 1";
$data['test'][] = "Row 2";
echo json_encode($json, JSON_FORCE_OBJECT);

これにより、json エンコーダーは常に数値配列ではなくオブジェクトにエンコードするようになり、問題が解決する可能性があります。

于 2013-02-10T20:01:30.380 に答える