zoukankan      html  css  js  c++  java
  • Ajax请求发送的FormData是"[object object]"

      今天遇见一个ajax请求的问题,以前data直接传了一个json字符串,后来适应新需求将ajax的请求参数修改为对象的格式让ajax自动转换为json字符串。以下是两种ajax请求代码。

    //字符串格式
    $.ajax({
        url:"http://127.0.0.1/test",
        type:"post",
        dataType:"JSON",
        data:"{'param':'test'}",
        processData :false,
    });
    
    //对象格式
    $.ajax({
        url:"http://127.0.0.1/test",
        type:"post",
        dataType:"JSON",
        data:{
            param:'test'
        },
        processData :false,
    });

      之前字符串格式的方式功能是能调通的,但是改成对象方式功能就调不通了,后台断点发现获取不到param参数。通过Chrome调试发现这个ajax请求的FormData是一个"[Object object]"字符串,并不是预期的json字符串。其他使用对象方式也没有出过问题,后来搜索了下ajax请求参数的含义,发现是因为processData这个配置的原因,processData的作用是:指定ajax是否将data中的数据进行转化,默认是true,即默认会将data中的数据转化成json字符串,false时,直接将data传输到后台。

      之前的ajax请求不是我写的,所有不懂processData的含义,去掉processData或者修改为true,就可以转化了。

    每多学一点知识,就少写一行代码。
  • 相关阅读:
    CentOS 7 和centos6切换图形界面和多用户界面
    centos6.8下安装elasticsearch
    一个xib钟多个Cell
    iOS frame从导航栏下面开始
    Xcode 移除(卸载)插件
    iOS9 HTTP传输安全
    pch头文件
    真机调试---打包6plus出现问题
    Xcode 添加类前缀
    iOS 状态栏黑色背景白色字体
  • 原文地址:https://www.cnblogs.com/guanmu/p/5060395.html
Copyright © 2011-2022 走看看