3

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 を返す必要があるだけです。サーバーにはそれを決定するロジックがあります)。

4

1 に答える 1