• AngularJS $http模块POST数据,后台接受不到


    1.问题:

    后端接收不到AngularJs中$http.post发送的数据,总是显示为null

    示例代码:

    复制代码
    $http.post(/admin/KeyValue/GetListByPage,
        { 
             pageindex: 1,
             pagesize: 8
        })
      .success(function(){ 
          alert("Mr靖");
      });
    复制代码

    代码没有错,但是在后台却接收不到数据,这是为什么呢?

    用火狐监控:参数是JSON格式

      

    用谷歌监控:传参方式是request payload

      

      可以发现传参方式是request payload,参数格式是json,而并非用的是form传参,所以在后台用接收form数据的方式接收参数就接收不到了

      POST表单请求提交时,使用的Content-Type是application/x-www-form-urlencoded,而使用原生AJAX的POST请求如果不指

    定请求头RequestHeader,默认使用的Content-Type是text/plain;charset=UTF-8,而此处的Content-Type是:

      


    2.解决方法:

     直接上代码:

    复制代码
    //要通过post传递的参数
    var data = {
        pageindex: 1,
        pagesize: 8,
    },
    //post请求的地址
    url = "/admin/KeyValue/GetListByPage",
    //将参数传递的方式改成form
    postCfg = {
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
        transformRequest: function (data) {
            return $.param(data);
        }
    };
    //发送post请求,获取数据
    $http.post(url, data, postCfg)
        .success(function (response) {
            alert("Mr靖");
        });
    复制代码

    接下来再看监视工具:

    火狐监视:参数类型已经变成表单数据

      

    谷歌监视:

      

    现在传参方式就变成form方式了,然后后端就可以正常接收参数了!

    或者:

    $http({

    method:'post',
    url:'post.php',
    data:{name:"aaa",id:1,age:20},
    headers:{'Content-Type''application/x-www-form-urlencoded'},
    transformRequestfunction(obj{
    var str [];
    for(var in obj){
    str.push(encodeURIComponent(p"=" encodeURIComponent(obj[p]));
    }
    return str.join("&");
    }
    }).success(function(req){
    console.log(req);
    })
  • 相关阅读:
    【NX二次开发】修改dlx对话框标题的方法
    【NX二次开发】导入x_t,UF_PS_import_data
    设置NX欢迎界面
    [转]10个顶级的CSS UI开源框架
    [转] 多线程 《深入浅出 Java Concurrency》目录
    [转] JAVA多线程和并发基础面试问答
    [转]StuQ 技能图谱(全套13张)
    [转] MongoDB shell 操作 (查询)
    搜集好的java技术帖子,持续更新,java程序员的要求
    [转]JAVA程序员一定知道的优秀第三方库(2016版)
  • 原文地址:https://www.cnblogs.com/icebutterfly/p/7815644.html
Copyright © 2020-2023  润新知