recherche

Maison  >  Questions et réponses  >  le corps du texte

angulaire.js - Comment utiliser la publication $http dans AngularJs

Les données de publication sont tronquées en chinois. Comment configurer cela ?

迷茫迷茫2871 Il y a quelques jours684

répondre à tous(2)je répondrai

  • 習慣沉默

    習慣沉默2017-05-15 16:54:53

    Je me souviens que la publication doit être convertie en arrière-plan avant de pouvoir être récupérée. . . Le code est disponible en ligne depuis longtemps. . Vous essayez ?
    Si vous avez des caractères chinois tronqués, vous pouvez essayer de les encoder,

    `app.config(function($httpProvider) {
    $httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded';
    $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    <code>    // Override $http service's default transformRequest

        $httpProvider.defaults.transformRequest = [function(data) {

            /**

             * The workhorse; converts an object to x-www-form-urlencoded serialization.

             * @param {Object} obj

             * @return {String}

             */

            var param = function(obj) {

                var query = '';

                var name, value, fullSubName, subName, subValue, innerObj, i;

     

                for (name in obj) {

                    value = obj[name];

     

                    if (value instanceof Array) {

                        for (i = 0; i < value.length; ++i) {

                            subValue = value[i];

                            fullSubName = name + '[' + i + ']';

                            innerObj = {};

                            innerObj[fullSubName] = subValue;

                            query += param(innerObj) + '&';

                        }

                    } else if (value instanceof Object) {

                        for (subName in value) {

                            subValue = value[subName];

                            fullSubName = name + '[' + subName + ']';

                            innerObj = {};

                            innerObj[fullSubName] = subValue;

                            query += param(innerObj) + '&';

                        }

                    } else if (value !== undefined && value !== null) {

                        query += encodeURIComponent(name) + '='

                                + encodeURIComponent(value) + '&';

                    }

                }

     

                return query.length ? query.substr(0, query.length - 1) : query;

            };

     

            return angular.isObject(data) && String(data) !== '[object File]'

                    ? param(data)

                    : data;

        }];

    });`

    </code>

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-15 16:54:53

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    <code>js</code><code>app.factory('HttpInterceptor', function() {

      // ---

      // PRVIATE METHODS.

      // ---

      // I serialize the given Object into a key-value pair string. This

      // method expects an object and will default to the toString() method.

      // --

      // NOTE: This is an atered version of the jQuery.param() method which

      // will serialize a data collection for Form posting.

      // --

      // https://github.com/jquery/jquery/blob/master/src/serialize.js#L45

      function serializeData(data) {

        // If this is not an object, defer to native stringification.

        if (!angular.isObject(data)) {

          return ((data == null) ? "" : data.toString());

        }

        var buffer = [];

        // Serialize each key in the object.

        for (var name in data) {

          if (!data.hasOwnProperty(name)) {

            continue;

          }

          var value = data[name];

          buffer.push(

            encodeURIComponent(name) +

            "=" +

            encodeURIComponent((value == null) ? "" : value)

          );

        }

        // Serialize the buffer and clean it up for transportation.

        var source = buffer

          .join("&")

          .replace(/%20/g, "+");

        return (source);

      }

      return {

        request: function(config) {

          if (config.method === 'POST') {

            if (config.data) {

              config.headers = config.headers || {};

              config.headers["Content-Type"] = "application/x-www-form-urlencoded; charset=utf-8";

              config.data = serializeData(config.data);

            }

          }

          return config;

        }

      };

    })

    </code>

    répondre
    0
  • Annulerrépondre