0

私の RESTful API では、いくつかの特別な場合 (たとえば、内部サブスクリプションの有効期限が切れている; これが REST に聞こえないことはわかっています) でリダイレクト (303) を返します。API をテストするために、jQuery を使用して簡単な Web ページを作成しました。ただし、303 を取得した場合、ブラウザー (XHR?) がリダイレクト自体を処理し、新しいリソースを取得するようです。これは Ajax 呼び出しから隠されているため、最後に 200 しか返されません。もちろん、元の呼び出しが成功しなかったため、これは誤解を招きます。明らかに、これは私が考えていたことではありません。クライアント スクリプトに、別のことを行う必要があることを認識させたかったのです (-> 別のリソースを取得)。

今、私は 303 を返すのが良い考えかどうか自問しています。代わりに、単純な 4xx を返し、クライアントをそのままにしておくことができます.... (おそらくゼロから始めます)

$.ajax({
url: self.links()[0].href,
type: "POST",
statusCode: {
    200: function () {
        //I always ended up here
    },
    303: function () {
    }
},
complete: function (e, xhr, settings) {
    if (e.status === 200) {
        //..and then here
    } else if (e.status === 303) {
    } else {                           
    }
}
4

2 に答える 2

1

jQuery$.ajaxは常にリダイレクトに従います。無効にできないと思います。

XHR リクエストへのレスポンスとしてリダイレクトを返す

投稿後にjQuery ajaxがリダイレクトをたどらないようにするにはどうすればよいですか?

于 2013-06-06T11:46:40.813 に答える