PHP ファイルに対して Ajax を使用して HTTP POST リクエストを発行していますが、目的の結果が得られません。$_POST と $_GET は両方とも空です。私は何かを見落としていると思いますが、何が何なのかわかりません。
リクエストを発行するための私のコードは次のとおりです。
this.save = function() {
alert(ko.toJSON([this.name, this.description, this.pages]));
$.ajax("x", {
data: ko.toJSON([this.name, this.description, this.pages]),
type: "post", contentType: "application/json",
success: function(result) { alert(result) },
error : function(jqXHR, textStatus, errorThrown) { alert(textStatus + errorThrown)}
});
};
3 行目の JSON に警告することに注意してください。その JSON は正しいので、5 行目の入力は有効です。
PHP での私のテスト方法:
header('Content-type: application/json; charset=utf-8');
echo json_encode(array_merge($_POST, $_GET));
exit;
私が得ている応答は空の配列です。
- 入力をテストしました(上記を参照)。
- PHP の例の 2 行目を I get that back in my page に置き換えると、Ajax 呼び出し自体が成功することがわかり
json_encode(array('success' => true));
ます。つまり、URL は正しいのです。 - GET と POST の両方でテストしましたが、同様の否定的な結果が得られました。