4

サーバーを呼び出してサーバー内の特定のオブジェクトをRESTフルアプリケーションから更新するWebベースのアプリケーションを作成しています。

これは私が書いたjavascriptコードです。

var sendUrl = url + "v1/items/" + itmId;
$.ajax({
    "type": "PUT",
    "url": sendUrl,
    //"data": {"name": nameVal, "description": descVal},
    "success": function() {
        alert('hai');  //refreshItems();
    },
    "complete": function (jqXHR, textStatus) {
        alert (textStatus);
    }
});

このコードが実行されたとき、サーバーは要求を受信しませんでした。ブラウザに更新が表示されませんでした。

ブラウザとしてGoogleChromeを使用しています。そこで、ChromeのJavascriptコンソールを調べたところ、コンソールに次のエラーが表示されました。

Chromeのコンソールからのエラー

この問題に対する可能な解決策はありますか?


編集:

コメントの1つで示唆されているように、私はネットワークパネルを調べてみました。サーバーを呼び出していないようです。

これは、この特定のリクエストのスクリーンショットです。 ここに画像の説明を入力してください

画像は非常に小さいです。ステータスは「(失敗)」で、タイプは保留中です

サーバーにPUTが構成されていない場合、内部サーバーエラーが発生します。だから、それはここでは起こっていません。


編集

答えで与えられた提案を試した後、

これはコードです:

var sendUrl = url + "v1/items/" + itmId;
$.ajax({
    "type": "PUT",
    "url": sendUrl,
    //"data": {"name": nameVal, "description": descVal},
    }).done(function ( ) {
        alert('OK');
    }).fail(function ( jqXHR, textStatus, errorThrown ) {
        console.log(jqXHR);
        console.log(textStatus);
        console.log(errorThrown);
    });

ログに記録されたオブジェクトは次のとおりです。

ここに画像の説明を入力してください

4

1 に答える 1

7

http/1.1 ステータス コードに関するjquery Ajax 関数 W3 仕様のドキュメント


まず、jQueryのドキュメントに記載されているように

非推奨通知: jqXHR.success()、jqXHR.error()、および jqXHR.complete() コールバックは、jQuery 1.8 で非推奨になりました。最終的な削除に備えてコードを準備するには、代わりに jqXHR.done()、jqXHR.fail()、および jqXHR.always() を使用してください。

また、fail 関数は次のパラメーターを受け入れます。

jqXHR, textStatus, errorThrown

エラーが発生しているので、次のコードを試してください。

var sendUrl = url + "v1/items/" + itmId;
$.ajax({
    "type": "PUT",
    "url": sendUrl,
    //"data": {"name": nameVal, "description": descVal},

}).done(function ( ) {
    alert('OK');

}).fail(function ( jqXHR, textStatus, errorThrown ) {
    console.log(jqXHR);
    console.log(textStatus);
    console.log(errorThrown);
});

これにより、ajax 呼び出しが機能しない理由に関する有用な情報がコンソールに出力されます。

Web サービスが正常に動作している場合は、http ステータス コードが返されます。一般的な応答コードを次に示します。

200 OK -> Everything is ok (it worked)
201 Created -> Ok too

400 Bad Request
401 Unauthorized
404 Not found

したがって、基本的に、得られる応答には、機能していない理由が反映されているはずです

于 2013-02-21T00:39:22.660 に答える