2013-08-11 14 views
44

मैं कोणीय 1.1.5 का उपयोग कर रहा हूं और मैं एक आरईएसटी सेवा में एक्सएचआर बनाने के लिए $ संसाधन का उपयोग कर रहा हूं लेकिन ऐसा लगता है कि $ संसाधन शामिल नहीं है X-Requested के रूप में हेडर- XMLHttpRequest के साथ, क्या यह सामान्य व्यवहार है? और क्या मुझे मैन्युअल रूप से हेडर जोड़ने की आवश्यकता है?

function loginCtrl($scope,$resource) { 
    $scope.submit = function() { 
     var resource = $resource('/Api/User/login', {}, 
       { 
        authenticate: { 
         method: 'POST', 
         isArray: false, 
         headers: { 
          '__RequestVerificationToken': $scope.loginRequest.Token 

         } 
        } 
       }); 
     resource.authenticate($scope.loginRequest); 
    }; 
} 
+0

$ संसाधन हेडर का समर्थन नहीं करता है। आप का उपयोग करने के लिए स्विच करना पड़ सकता है $ http – zsong

+0

यह होता है, मैं संस्करण 1.1.3 –

+3

के बाद लगता है कि मुझे लगता है कि आप अभी भी $ http में यह स्थापित करने के लिए, $ http.defaults.headers.common [ 'एक्स-अनुरोधित-साथ की तरह कुछ '] =' XMLHttpRequest ' – zsong

उत्तर

101

बस अपने एप्लिकेशन में जोड़ना

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

लैरवेल 5.1 इस हेडर को "AJAX अनुरोध" के रूप में अनुरोध निर्धारित करने की अपेक्षा करता है। –

+0

महान, अब, हम Angular2 में ऐसा कैसे करते हैं?/Https://angular.io/docs/ts/latest/api/http/BaseRequestOptions-class.html – Ayyash

+0

मैं लगभग एक सप्ताह के लिए तलाश रहे हैं, और सही जब मैं टिप्पणी की, मैं इस सवाल का जवाब मिल गया , Asp.Net MVC को सही ढंग से 'Request.IsAjaxRequest() ' – Ayyash

25

यह उपयोग किया गया था लेकिन बदल दिया गया था। (see here)

"एक्स-अनुरोधित-साथ हैडर शायद ही कभी व्यवहार में और हर समय इसे हम crossdomain अनुरोधों के लिए preflight जाँच करता है ट्रिगर कर रहे हैं का उपयोग करके किया जाता है।"

थॉमस पोन्स के उत्तर here से।

+3

यह पता करने के लिए, मैं इसे का उपयोग कर रहा हूँ क्योंकि मैं servicestack में एक antiForgeryToken विशेषता के साथ अनुरोध मान्य कर रहा हूँ अच्छा है, बात यह है कि मैं यह जानने के लिए एक AJAX अनुरोध होने के लिए मान्य करें कि कम से कम उस अनुरोध को फ़ॉर्म से बनाया गया था, अब सवाल यह है: "अगर अनुरोध अजेक्स है तो मैं सर्वर पक्ष में कैसे जान सकता हूं?", उत्तर के लिए धन्यवाद! –

+0

मैं आपको वास्तविक प्रतिबद्धता के अतिरिक्त संदर्भ के लिए +1 दूंगा। –

1

मैं एक ही मुद्दा था और मैं का उपयोग कर इसे हल:

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

इसके अलावा, आप शीर्ष लेख सेट कर सकते हैं application/json स्वीकार करने के लिए:

$http({ 
    method: 'GET', 
    url: '/someUrl', 
    headers: { Accept: 'application/json' } 
}) 
संबंधित मुद्दे