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,就可以转化了。

    每多学一点知识,就少写一行代码。
  • 相关阅读:
    AQS简介
    原子类案例
    保证线程安全的三个方面
    CAS无锁机制
    乐观锁与悲观锁
    读写锁简介
    重入锁简介
    并发队列Queue
    报错Cannot resolve com.mysq.jdbc.Connection.ping method. Will use 'SELECT 1' instead 问题记录
    Springboot中MyBatis 自动转换 map-underscore-to-camel-case
  • 原文地址:https://www.cnblogs.com/guanmu/p/5060395.html
Copyright © 2011-2022 走看看