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

时间: 2024-10-22 06:43:36

Ajax请求发送的FormData是"[object object]"的相关文章

vue中ajax请求发送

示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> spa

jQuery的AJAX请求发送JSON参数

var dataArr = [{"username":"666","name2":"777"},{"username":"888","name2":"999"}]; var params = JSON.stringify(dataArr); $.post("p.do", {params : params},      funct

全局为每一个ajax请求都附带一个loading效果 .ajaxSend

描述: 在Ajax请求发送之前绑定一个要执行的函数,这是一个 Ajax Event. 添加的版本: 1.0.ajaxSend( handler(event, jqXHR, ajaxOptions) ) handler(event, jqXHR, ajaxOptions) 类型: Function() 被调用的函数. 每当一个Ajax请求即将发送,jQuery就会触发ajaxSend事件,在这个时间点所有处理函数都会使用.ajaxSend()方法注册并执行. 观察这种方法,建立一个基本的Ajax加

Jquery监听AJAX请求

.ajaxComplete() 当Ajax请求完成后注册一个回调函数.这是一个 AjaxEvent. .ajaxError() Ajax请求出错时注册一个回调处理函数,这是一个 Ajax Event. .ajaxSend() 在Ajax请求发送之前绑定一个要执行的函数,这是一个 Ajax Event. .ajaxStart() 在AJAX 请求刚开始时执行一个处理函数. 这是一个 Ajax Event. .ajaxStop() 在AJAX 请求完成时执行一个处理函数. 这是一个 Ajax Eve

HTTP协议、Ajax请求

今天这篇文章呢,主要讲的就是关于HTTP协议.Ajax请求以及一些相关的小知识点.虽然内容不算多,可是是很重点的东西~ HTTP协议 1. http:超文本传输协议.简单.快速.灵活.无状态.无连接.2. url:统一资源定位符.     组成部分:协议名://主机名(主机ip):端口号/项目资源地址?传递参数的键值对#锚点     eg: http://192.168.5.151:8080/js/index.php?name=zhangsan#top     ① ip地址在同一网段是唯一的.如

firefox同步ajax请求报错的问题 A parameter or an operation is not supported by the underlying object

今天在测试系统时,一个很正常的功能在firefox下报错,经过验证在ie和chrome浏览器中功能这个正常.   调试后发现: 请求比其他请求的特殊点在于同步请求.   经过firefox的控制台上测试发现错误日志:   "[Exception... "A parameter or an operation is not supported by the underlying object" code: "15" nsresult: "0x805

解决浏览器跨域限制发送ajax请求

一.什么是浏览器跨域限制?本质是什么? 所谓浏览器跨域限制,其实是为了数据安全的考虑由Netscape提出来限制浏览器跨域访问数据的策略,这是一中约定,正式叫法为浏览器同源策略,目前已经在大多数浏览器中支持. 本质上,所谓浏览器同源策略即:不允许浏览器访问跨域的Cookie,ajax请求跨域接口等.也就是说,凡是访问与自己不在相同域的数据或接口时,浏览器都是不允许的. 最常见的例子:对于前后端完全分离的Web项目,前端页面通过rest接口访问数据时,会出现如下问题: 不允许发送POST请求:在发

通过在jquery中添加函数发送ajax请求来加载数据库数据,以json的格式发送到页面

通过在jquery中添加函数发送ajax请求来加载数据库数据,以json的格式发送到页面 从数据库中查询仓库信息,显示在下拉菜单中: 首先,引入js插件,这里使用jquery-1.8.3.js <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script> 当页面加载完成后,就应该发送ajax请求到数据库,

使用python的requests 发送multipart/form-data 请求

网上关于使用python 的发送multipart/form-data的方法,多半是采用 ulrlib2 的模拟post方法,如下: import urllib2 boundary='-------------------------7df3069603d6' data=[] data.append('--%s' % boundary) data.append('Content-Disposition: form-data; name="app_id"\r\n') data.appen