1

タイトルのように、asp.net 4.0 Web フォーム プロジェクトが正常に動作しています。jquery を 1.7.2 から 1.9.0 に移動しようとすると、

HTTP 405.0 - メソッドが許可されていません

ajaxを介してhtmファイルをロードしようとすると。エラーになるサンプルコード

$("#samplediv").load("/htmlParts/ComunicazioniAlerts.htm?p=" + now(), function () {
    alert('loaded');
}); 

古いバージョンの jquery で完全に動作するコード。

私はアップグレードをスタンバイにしています。メソッド/動詞の問題のようですが、ページを必要とする方法が変更されたかのように、jquery をアップグレードするときにのみ表示されます。

4

1 に答える 1

1

見つかった。私は自分のアプリで多くの ajax 呼び出しを使用しており、繰り返しを避けるために、これを自分のアプリの上に置きます

$.ajaxSetup({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    data: "{}",
    dataType: "json"
});

1.7.2 では、これは GET メソッドを使用し続ける $.load() には適用されませんでした。
1.9.0 でも $.load は $.ajaxsetup を考慮し、htm ファイルの POST メソッドでリクエストを送信し、IIS はリクエストを拒否します。

考えられる回避策:
- IIS で、静的要素で POST 動詞を有効にします (方法がわからず、使用する可能性のあるすべての iis に配置するのはトリックです。ひどい)
- $.ajaxsetup から POST を削除し、すべてに再度追加します$.ajax リクエスト (退屈で長い)
- すべての $.load を $.get に置き換え、結果の html を目的の div に追加するコードを記述する必要があります (これも退屈で長いです)。

任意の回避策をいただければ幸いです。

于 2013-01-18T15:54:02.017 に答える