$ http प्राप्त पैरामीटर काम नहीं करता है


93

क्या किसी को पता है कि यह काम क्यों नहीं करता है?

$http
    .get('accept.php', {
        source: link,
        category_id: category
    })
    .success(function (data, status) {
        $scope.info_show = data
    });

और यह काम करता है:

$http
    .get('accept.php?source=' + link + '&category_id=' + category)
    .success(function (data, status) {
        $scope.info_show = data
    });

जवाबों:


191

getकॉल में दूसरा पैरामीटर एक कॉन्फिग ऑब्जेक्ट है। आप कुछ इस तरह चाहते हैं:

$http
    .get('accept.php', {
        params: {
            source: link,
            category_id: category
        }
     })
     .success(function (data,status) {
          $scope.info_show = data
     });

अधिक विवरण के लिए http://docs.angularjs.org/api/ng.$http का तर्क खंड देखें


ध्यान दें, paramsऊपर के रूप में उपयोग करने से जीईटी अनुरोधों का उपयोग न करने की समस्या का भी समाधान होता है data। AngularJS इसे स्वयं नहीं छांटेगा जैसा कि jQuery करता है। (मुझे नहीं लगता कि यह एक अच्छी या बुरी चीज है, बस अलग है और लोगों को यात्रा कर सकती है)।
डैनियलएम

मैं परम वस्तु के अंदर अपने प्रमुख मूल्य गुणों के लिए अपरिभाषित हो रहा हूं। क्या यह एक सेवा में अलग होना चाहिए?
विन्नमुक्का

2
साथ ही, जब paramsऑब्जेक्ट खाली है, या इसके सभी गुण हैं nullया undefined, तो क्वेरी स्ट्रिंग में कुछ भी नहीं जोड़ा जाएगा।
nfang 4:22 बजे

3

से $http.getडॉक्स , दूसरा पैरामीटर एक विन्यास वस्तु है:

get(url, [config]);

GETअनुरोध करने के लिए शॉर्टकट विधि ।

आप अपना कोड इसमें बदल सकते हैं:

$http.get('accept.php', {
    params: {
        source: link, 
        category_id: category
    }
});

या:

$http({
    url: 'accept.php', 
    method: 'GET',
    params: { 
        source: link, 
        category_id: category
    }
});

साइड नोट के रूप में, कोणीय 1.6 : का .success उपयोग अब और नहीं किया जाना चाहिए , .thenइसके बजाय उपयोग करें :

$http.get('/url', config).then(successCallback, errorCallback);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.