कैसे पता करें कि अनुरोध asp.net mvc में ajax है या नहीं?


108

किसी को भी कैसे पता चल सकता है कि अनुरोध अजाक्स है? (मैं ajax के लिए jquery का उपयोग कर रहा हूँ)


2
अनुरोधों को देखने के लिए आप फ़िडलर का उपयोग भी कर सकते हैं। ऐसा करने से आपको बहुत कुछ सीखने को मिलेगा।
क्रेजी डार्ट

जवाबों:


70

JQuery द्वारा किए गए सभी AJAX कॉल में यह बताने के लिए एक शीर्षक होगा कि यह AJAX है। हेडर को जांचना है X-Requested-With, और मान XMLHttpRequestतब होगा जब यह AJAX कॉल होगा।

ध्यान दें कि AJAX अनुरोध सामान्य GET या POST हैं, इसलिए जब तक आप (या आपके AJAX पुस्तकालय जैसे jQuery) अनुरोध में एक अतिरिक्त शीर्षलेख नहीं जोड़ रहे हैं, तब तक यह जानने का कोई तरीका नहीं है कि यह AJAX है या नहीं।


3
@Omu: Request.Headers["X-Requested-With"]या समान। MSDN की जाँच करें। हेडर हमेशा अनुरोधों से संबंधित होते हैं।
रॉबर्ट कुरिटनिक 13

179

वहाँ भी Request.IsAjaxRequestअगर आप MVC के बाद के संस्करण का उपयोग कर रहे हैं। मेरे पास अब संस्करण 1 नहीं है इसलिए मैं यह नहीं कह सकता कि यदि यह संस्करण 1 में है।

अगर आपको Global.asax.cs में इस चेक की आवश्यकता है: new HttpRequestWrapper(Request).IsAjaxRequest()


1
@BuildStarted मुझे Global.asax.cs में इस चेक की आवश्यकता है, तो इससे मुझे मदद नहीं मिलेगी
Omu

2
@BuildStarted Application_Error में उपलब्ध नहीं है
Omu

1
हां आप ठीक हैं। ऐसा इसलिए है क्योंकि यह MVC के बाहर है और उपयोग नहीं करता है HttpRequestBase। मुझे इसकी कोई आवश्यकता नहीं थी इसलिए मैंने बहुत गहराई से नहीं देखा। सर उठाने के लिए धन्यवाद।
निर्मित

20
नया HttpRequestWrapper (अनुरोध) .IsAjaxRequest ();

1
Btw: आप के अंदर कस्टम प्राधिकरण फिल्टर इस का उपयोग पर अनुरोध IsAjaxRequest विधि प्राप्त करने के लिए कर रहे हैं: filterContext.HttpContext.Request.IsAjaxRequest
user1068352

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.