jq 调用ajax 报错: illegal invocation 处理方法
使用 form表单提交表单信息,参数如图1 设置,请求ajax时会报错Illegal invocation 错误…
图1
所图1, formData 为表单参数, 上边几个是其他所需参数。请求ajax时, 会报错如图2:
图2
首先了解一下processData 属性,查看官网:
processData(默认值:true):默认情况下,作为对象传递给data选项的数据(从技术上讲,除了字符串以外的任何东西)将被处理并转换为查询字符串,这符合默认的内容类型“application/x-www-form-urlencoded”。如果希望发送DOMDocument或其他未处理的数据,请将此选项设置为false。
出现这种问题的原因是参数被处理了,如果不想被处理content-type不要设置任何类型及processData设置为true。
从jQuery 1.6开始,可以传递contentType: false来告诉jQuery不要设置任何内容类型头部。
接下来我加上这两个参数之后接口正常走通,参数值为object 类型,但是后台获取不到我传的参数…
如果只传一个formData 后台接收正常,so… 又把所有需要的参数赋值成隐藏域,这才搞定所有问题。
参数值如图,此时正常传值接收