0

私のajaxメソッドが実際に呼び出されることはありません。私はこのコードを使用しています:

$("#client").change(function(e) {   
    var url = 'https://...../clientToStations.php';
    var data = 'ident=' + $("option:selected", this).val()

    alert("curl -X POST -d " + data + ' ' + url);

    $.ajax({
        type: POST,
        url: url,
        data: data,
    }).done(function(html) {
        alert('Done');
        $("#station").html(html).removeAttr('disabled');
    }).fail(function( jqXHR, textStatus, errorThrown ) {
        alert('fail');
    }).always(function () {
        alert('always');
    });
});

予想される時点でアラートが表示されます。curl コマンドをコピーして端末に貼り付けると、期待どおりの正確なデータが返されます。ただし、ここでは、done/fail/always のいずれのメソッドもヒットしていません。

次に、clientToStations.php を編集して error_log() を実行し、呼び出されたことを伝えました。ajaxが「実行」されると、そのメッセージはApacheエラーログに表示されません。curl コマンドを手動で実行すると、正しく表示されます。ログに他のエラーは表示されません。

4

1 に答える 1

0

答えは、done/fail/alwaysを使用せず、ajax呼び出し自体内のおそらく古い「成功」要素に戻ることになりました。

    $.ajax({
        type: 'POST',
        url: 'https://..../clientToStations.php',
        data: {
            ident: $("option:selected", this).val()
        },
        success: function(html) {
            ....
        }
    });

また、「データ」パラメーターを構築された文字列ではなくオブジェクトに変更しましたが、それは実際の問題とは関係ありませんでした。

于 2013-09-21T06:46:40.747 に答える