javascript - شرح - AngularJS تمرير البيانات إلى طلب http.get $




angularjs شرح (5)

لدي وظيفة والتي لا تطلب HTTP POST. الرمز المحدد أدناه. هذا يعمل بشكل جيد.

 $http({
   url: user.update_path, 
   method: "POST",
   data: {user_id: user.id, draft: true}
 });

لدي وظيفة أخرى لـ http GET وأريد إرسال البيانات إلى هذا الطلب. لكن ليس لدي هذا الخيار في الحصول عليه.

 $http({
   url: user.details_path, 
   method: "GET",
   data: {user_id: user.id}
 });

بناء الجملة ل http.get هو

احصل على (url، config)

يمكن للشخص مساعدتي في هذا؟


بدءًا من AngularJS v1.4.8 ، يمكنك استخدام get(url, config) كما يلي:

var data = {
 user_id:user.id
};

var config = {
 params: data,
 headers : {'Accept' : 'application/json'}
};

$http.get(user.details_path, config).then(function(response) {
   // process response here..
 }, function(response) {
});

حل لأولئك الذين يرغبون في إرسال المعلمات والرؤوس في طلب GET

$http.get('https://www.your-website.com/api/users.json', {
        params:  {page: 1, limit: 100, sort: 'name', direction: 'desc'},
        headers: {'Authorization': 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='}
    }
)
.then(function(response) {
    // Request completed successfully
}, function(x) {
    // Request error
});

مثال الخدمة الكامل سيبدو هكذا

var mainApp = angular.module("mainApp", []);

mainApp.service('UserService', function($http, $q){

   this.getUsers = function(page = 1, limit = 100, sort = 'id', direction = 'desc') {

        var dfrd = $q.defer();
        $http.get('https://www.your-website.com/api/users.json', 
            {
                params:{page: page, limit: limit, sort: sort, direction: direction},
                headers: {Authorization: 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='}
            }
        )
        .then(function(response) {
            if ( response.data.success == true ) { 

            } else {

            }
        }, function(x) {

            dfrd.reject(true);
        });
        return dfrd.promise;
   }

});

لإرسال طلب الحصول على المعلمة يمكنني استخدام

  $http.get('urlPartOne\\'+parameter+'\\urlPartTwo')

من خلال هذا يمكنك استخدام سلسلة url الخاصة بك


لا يمكن أن يحتوي طلب HTTP GET على بيانات ليتم نشرها على الخادم. ومع ذلك ، يمكنك إضافة سلسلة استعلام إلى الطلب.

يوفر angular.http خيارا لأنها تسمى params .

$http({
    url: user.details_path, 
    method: "GET",
    params: {user_id: user.id}
 });

راجع: http://docs.angularjs.org/api/ng.$http#get و https://docs.angularjs.org/api/ng/service/$http#usage (يُظهر المعلمة params )


يمكنك تمرير params مباشرة إلى $http.get() يعمل التالية على ما يرام

$http.get(user.details_path, {
    params: { user_id: user.id }
});






javascript-framework