2015-10-15 5 views
12

में कोणीय जेएस AJAX कॉल की पहचान करें मैं एएसपी.नेट एमवीसी और एंगुलरजेएस का उपयोग कर नमूना अनुप्रयोग पर काम कर रहा हूं।एएसपी.नेट एमवीसी कोड

सर्वर साइड कोड में, मैंने एक एक्शन फ़िल्टर विशेषता लिखी है, और उसमें मुझे यह जांचने की आवश्यकता है कि अनुरोध एक सामान्य अनुरोध (ब्राउज़र) या AJAX अनुरोध है या नहीं।

public override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    if (filterContext.HttpContext.Request.IsAjaxRequest()) 
    { 

    } 
} 

विधि ऊपर कोड स्निपेट में उल्लेख किया है "IsAjaxRequest()" AJAX अनुरोध के मामले में सही नहीं लौटा रहा है $ http कोणीय सेवा का उपयोग किया।

मैंने देखा कि अनुरोध में X-Requested- हेडर के साथ नहीं है, और यहां तक ​​कि हेडर जोड़ने से अनुरोध हल नहीं हुआ है।

नोट: यह कॉर्स कॉल नहीं है।

तो मेरा प्रश्न।

  1. कैसे filterContext.HttpContext.Request.IsAjaxRequest() तय करता है कि क्या अनुरोध AJAX या नहीं है?

  2. मैं अनुरोध हेडर (चाहे उसके पास कोई विशेष शीर्षलेख है या नहीं) की जांच कर सकते हैं और यह तय कर सकते हैं कि अनुरोध AJAX है या नहीं। क्या यह सही और एकमात्र दृष्टिकोण है?

+1

से बस एक FYI यह खुला स्रोत है और आप वास्तविक क्रियान्वयन देख सकते हैं कि याद आ रही है देख सकते हैं : https://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.Mvc/AjaxRequestExtensions.cs –

+0

@ किथ रूससे लिंक प्रदान किया जाना चाहिए मेरे लिए उपयोगी होना चाहिए भविष्य में .. – refactor

उत्तर

18

यह देखकर निर्णय लेता है कि X-Requested-With हेडर मौजूद है या नहीं। आप X-Request-With शीर्षलेख मैन्युअल रूप से $http सेवा में जोड़ सकते हैं।

व्यक्तिगत अनुरोध

$http.get('/controller/action', { 
    headers: { 
    'X-Requested-With': 'XMLHttpRequest' 
    } 
}); 

हर अनुरोध के लिए

app.config(['$httpProvider', function ($httpProvider) { 
    $httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest'; 
}]); 

आप क्यों यह Angular

+0

असल में मैंने हेडर को सुझाव दिया था, लेकिन मुद्दा "XMLHttpRequest" के बजाय हेडर के मान के साथ था, यह "सत्य" था, भगवान जानता है कि मैंने यह मूल्य क्यों दिया :)। प्रदान किया गया लिंक भी सहायक है। धन्यवाद। – refactor

संबंधित मुद्दे