Angularjs - Form Post Data Not Posted?

前端 未结 2 609
滥情空心
滥情空心 2021-01-02 10:54

I must admit I am a little bit confused... I have never done this before and I am apparently missing something

When I pass data via http.post to my php file I am can

2条回答
  •  渐次进展
    2021-01-02 11:23

    If you want use $_POST in php and don't include jquery and use that functions like $.param(), for pure anjularjs you should modify app.js and add this lines:

    .config( [ '$httpProvider',
    function ( $httpProvider ) {
        // Use x-www-form-urlencoded Content-Type
        $httpProvider.defaults.headers.post[ 'Content-Type' ] = 'application/x-www-form-urlencoded;charset=utf-8';
    
        /**
         * The workhorse; converts an object to x-www-form-urlencoded serialization.
         * @param {Object} obj
         * @return {String}
         */
        var param = function ( obj ) {
            var query = '',
                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;
        };
    
        // Override $http service's default transformRequest
        $httpProvider.defaults.transformRequest = [
            function ( data ) {
                return angular.isObject( data ) && String( data ) !== '[object File]' ? param( data ) : data;
            }
        ];
    }] )
    

提交回复
热议问题