私は次のコードを使用しています:
$.ajax({
type: "POST",
url: url,
dataType: "json",
contentType: "application/json; charset=utf-8",
data: jsonData,
success: wrapped,
error: function (error) {
console.info("Json post failed");
}
});
MVC4アクションにjsonデータを投稿するのにうまく機能します。ただし、newtonsoft シリアライザーとカスタム JsonResult を使用する特定のアクションが 1 つあります。このアクションを呼び出すと、正しいデータとステータス 200 OK が返されます。しかし、JQuery はエラー コールバックを呼び出し、error.state() は「拒否」されます。
これはなぜですか?エラーから応答を取り出して、次のようにします。 var o = eval(jsonresponse); 必要なデータが得られます。
この応答と少し異なる点は、.NET 日付が実際の JavaScript コード (new Date(0492342392)) としてシリアル化されることだけです。それが jquery がエラー コールバックを呼び出す理由ですか?
アイデア?
[編集]
応答jsonは次のとおりです。
[{"name":"Bench Press","data":
[{"date":new Date(1372975200000),
"id":"70a7b32b-befc-45e2-a589-1eafc0149c8a",
"bodyWeight":80.0,"reps":13,"weight":100.0}]}]
データが空の場合、この特定の呼び出しは失敗しないため、これが失敗する日付のようです。
では、json で真の JavaScript 日付を返す正しい方法は何でしょうか?