ASP.NET WebApi を使用して REST サービスを構築しています。多くの場合、200 OK メッセージ (本文なし) を返すだけで済みます。通常、応答は次のようになります (これは POST です)。
return this.Request.CreateResponse(HttpStatusCode.OK);
また
return new HttpResponseMessage(HttpStatusCode.OK);
どちらも jQuery 1.8 でうまく機能しましたが、これは、そのバージョンで "" の responseText を使用できるようにしたためです (それに対して parseJSON を実行しようとします)。
ただし、jQuery 2.0 では、失敗した parseJSON (空のテキスト) が無効であると見なされるため、代わりに deferred.fail() コールバックで終了します。
これを解決するにはどうすればよいですか?
アップデート
これを使用する JS 呼び出しの例:
var deferred = $.ajax({
"type": "POST",
"url": something,
"contentType": "application/json; charset=utf-8",
"dataType": "json",
"data": JSON.stringify(whatever)
});
deferred.fail(function (msg) {
// it ends up in here
});
呼び出しによって JSON 応答が返される可能性がありますが、多くの場合、ボディなしで 200 OK を返す必要があるだけです。サーバーにはそれを決定するロジックがあります)。