2

JQuery Mobile (私にとっては初めて) と AJAX 呼び出しで問題が発生しています。私は次のコードを使用しています:

$.ajax({
            type: "POST",
            url: "http://**correct url**/post/todoitem",
            beforeSend: addHeaders,
            dataType: "json",
            contentType: "application/json",
            data: { "todoitem":"test" }, // this is just as a test
            success: function(result) {
                alert("Success: " + JSON.stringify(result));
            },
            error: function() {
                alert("Error: " + JSON.stringify(arguments));
            }
        });

これを実行すると、todoitem からのデータが必要な場所で PHP スクリプトが呼び出されます。つまり、この場合は文字列 "text" (最終的に複数の変数が送信されることになりますが、今のところ、1 つのパラメーターを使用してシンプルさ)。

私のPHPコードは次のようになります(これもテスト目的です):

echo json_encode($_POST));

結果は: 何もない、null です。$_POST が空のようです。私は多くのことを検索して試しましたが、ほとんどの回答 (ここでもスタックオーバーフローで) はフォームに関するものであり、フォームの内容をシリアル化する必要があると人々は言います。ただし、フォームはまったく使用していません。

私も試しました

data: JSON.stringify({ "todoitem" : "test" })

一部の人が示唆したように、これも機能しませんでした。私が試したこの小さなPHPハックのために、データが転送されていることを私は知っています:

echo file_get_contents('php://input');

それは正確にデータを示しています: todoitem = test. では、これはどこでうまくいかないのでしょうか? 私は今これに何日も取り組んでいます!事前にt​​hnx

4

1 に答える 1

3

問題は、コードのこの部分にあります。

contentType: "application/json",`

その行を削除すると、送信されたContent-Typeヘッダーがデフォルトにapplication/x-www-form-urlencodedなり、PHPはリクエストをにデコードし$_POSTます。

于 2012-10-11T13:25:54.317 に答える