2013-10-13 23 views
7

मैं HTTP प्राधिकरण हेडर के साथ CORS अनुरोध से संबंधित प्रश्न है?AngularJS और क्रॉस-डोमेन पोस्ट

यहाँ मेरी कोणीय कोड है:

var app = angular.module('app', []) 
    .config(['$httpProvider', function($httpProvider) { 
     $httpProvider.defaults.useXDomain = true; 
     delete $httpProvider.defaults.headers.common['X-Requested-With']; 
    }]); 

    app.controller('ctrl', function ($scope, $http) { 
     $scope.insert = function() { 

      $http.post('http://my.api.com/Insert', 
       { 
        headers: { 
         'Authorization': 'Basic dGVzdDp0ZXN0', 
         'Content-Type': 'application/x-www-form-urlencoded' 
        }, 
        data: { 
         'Code': 'test data' 
        }, 
        withCredentials: true 
       }); 
     }; 
    }); 

सर्वर साइड पर मैं अपने web.config में इस राशि

<httpProtocol > 
    <customHeaders> 
    <add name="Access-Control-Allow-Origin" value="*" /> 
    <add name="Access-Control-Allow-Headers" value="Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With" /> 
    <add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" /> 
    <add name="Access-Control-Allow-Credentials" value="true" /> 
    </customHeaders> 
</httpProtocol> 
+0

था यू कि के लिए एक समाधान खोजने के? –

उत्तर

11

आप $http.post गलत तरीके से उपयोग कर रहे हैं। दूसरा पैरामीटर डेटा आपको सर्वर पर भेजने की आवश्यकता है, तो आप इस तरह के हेडर सेट नहीं कर सकते हैं। आपके मामले में, यह पूरी वस्तु भेज देंगे के रूप में JSON पेलोड

इस प्रयास करें:

$http({ 
     url:'http://my.api.com/Insert', 
     method:"POST", 
     headers: { 
        'Authorization': 'Basic dGVzdDp0ZXN0', 
        'Content-Type': 'application/x-www-form-urlencoded' 
     }, 
     data: { 
       'Code': 'test data' 
     } 
    }); 
+0

मदद नहीं करता है, धन्यवाद! मुझे बस एक और चीज तय करना था कि आप क्रेडेंशियल्स के साथ उपयोग नहीं कर सकते हैं: यदि आपके पास एक्सेस-कंट्रोल-ऑर्डर-ऑरिजन है: * – aron

+0

@aron: धन्यवाद, अपडेट किया गया। –

+0

मेरे मामले में यह काम नहीं किया; –

0

withCredentials - {बूलियन} - पर withCredentials ध्वज सेट करने के लिए है कि क्या एक्सएचआर ऑब्जेक्ट। अधिक जानकारी के लिए प्रमाण पत्र के साथ अनुरोध देखें।

+0

मैंने कोशिश की, यह – aron

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