私のチームと私は、ASP.NET Web サイトの特定のページで jQuery Ajax リクエストが失敗し、他のページではリクエストが成功するという問題に取り組んできました。
ここに私のjQueryコードがあります:
$.ajax({
url: 'Test.aspx/Hello',
data: '{"name": "alex"}',
dataType: 'json',
type: 'POST',
contentType: 'application/json; charset=utf-8',
error: function() { console.log("error"); },
success: function(data) { console.log(data.d); }
});
C# コード (Test.aspx.cs 内):
[WebMethod]
public static string Hello(string name)
{
return "success: " + name;
}
これは奇妙に聞こえるかもしれませんが、リクエストが失敗したページを含むフォルダーが"Adverts"と呼ばれるため、問題が発生するようです。
WebMethod (Test.aspx/Test.aspx.cs) を含むページをプロジェクトのさまざまなフォルダーに移動しました。ページをAdvertsフォルダーに移動する場合を除いて、jQuery Ajax を介していつでも WebMethod を呼び出すことができます。広告フォルダーの名前を「Jeffrey」に変更するところまで行きました。すぐに、Ajax リクエストは正常に完了しました。次に、「Adverts」という別のフォルダーを作成し、そこに WebMethod を含むページを移動しました。奇妙なことに、要求は失敗しました。
上記の例のように同じページから WebMethod を呼び出してみましたが、以下の例のように別のページからも呼び出してみました。
url: '/Adverts/Test.aspx/Hello',
Adverts というフォルダを使わない以外にどうすればいいのかわかりませんが、それではやめたくなります。誰でもこれに光を当てることができますか?