bagaimana cara mengetahui apakah request ajax di asp.net mvc?


108

siapa saja, bagaimana saya bisa tahu jika permintaannya ajax? (Saya menggunakan jquery untuk ajax)


2
Anda juga bisa menggunakan Fiddler untuk mengawasi permintaan. Anda akan belajar banyak dengan melakukan ini.
CrazyDart

Jawaban:


70

Semua panggilan AJAX yang dibuat oleh jQuery akan memiliki header yang ditambahkan untuk menunjukkan bahwa itu adalah AJAX. Header yang akan diperiksa adalah X-Requested-With, dan nilainya akan menjadiXMLHttpRequest ketika itu adalah panggilan AJAX.

Perhatikan bahwa permintaan AJAX adalah GET atau POST normal, jadi kecuali Anda (atau pustaka AJAX Anda seperti jQuery) menambahkan header tambahan dalam permintaan tersebut, tidak ada cara untuk mengetahui dengan pasti apakah itu AJAX atau bukan.


3
@Omu: Request.Headers["X-Requested-With"]atau serupa. Periksa MSDN. Header selalu terkait dengan permintaan.
Robert Koritnik

179

Ada juga Request.IsAjaxRequestjika Anda menggunakan versi MVC yang lebih baru. Saya tidak memiliki versi 1 lagi jadi saya tidak dapat mengatakan apakah itu dalam versi 1.

Jika Anda memerlukan pemeriksaan ini di Global.asax.cs coba ini: new HttpRequestWrapper(Request).IsAjaxRequest()


1
@BuildStarted Saya perlu pemeriksaan ini di Global.asax.cs jadi ini tidak akan membantu saya
Omu

2
@BuildStarted tidak tersedia di Application_Error
Omu

1
Ya kamu benar. Itu karena itu di luar MVC dan tidak digunakan HttpRequestBase. Saya tidak membutuhkannya jadi saya tidak melihat terlalu dalam. Terimakasih atas peringatannya.
Dibangun mulai

20
baru HttpRequestWrapper (Request) .IsAjaxRequest ();

1
BTW: Jika Anda berada di dalam filter otorisasi kustom, gunakan ini untuk mendapatkan metode IsAjaxRequest pada Request: filterContext.HttpContext.Request.IsAjaxRequest
user1068352

51

Ini bekerja untuk saya di ASP.NET MVC 3

if (Request.IsAjaxRequest())
{
     // ajax request handled
}

1
Ini tidak tersedia di Application_Error
ajbeaven

1
Ini tidak tersedia di Application_BeginRequest
Varadha31590

Dalam Global.asax:new HttpRequestWrapper(Request).IsAjaxRequest()
Morgs
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.