You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

$.ajax设置data: form时Chrome报Uncaught SyntaxError错误如何解决

错误原因

这个报错是纯JavaScript语法书写错误导致的,和FormData、ajax异步提交逻辑本身无关,具体问题点有两个:

  • type:'POST' 配置项末尾缺少逗号。JavaScript对象的多个属性之间必须用逗号做分隔,缺失逗号后解析器无法识别后续的data属性,直接中断解析抛出语法错误。
  • 你把控制台输出的报错文本Uncaught SyntaxError: Unexpected identifier 直接写在了data: form,代码行的末尾,这串文本不属于合法的JavaScript语法结构,解析器读到该位置时无法识别为合法的标识符或对象属性,直接触发报错。

你代码里配置的processData: false、contentType: false是FormData异步提交的正确配置,这部分逻辑没有问题。

修复方案

删除代码中误写的报错文本,给type:'POST'配置项补上末尾的逗号即可,修复后的可运行代码如下:

let form = new FormData(this);            
$.ajax({
    url: "RegisterServlet",
    type: 'POST',
    data: form,
    success: function(data, textStatus, jqXHR) {
        console.log(data);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log(jqXHR);
    },
    processData: false,
    contentType: false
});

额外排查提示

如果修复语法错误后仍存在提交异常,可优先排查两点:

  • 确认new FormData(this)中的this指向正确,必须绑定到触发提交的原生form DOM元素,否则FormData无法正常采集表单字段值。
  • 后端接口不要强制按application/x-www-form-urlencoded格式解析请求体,FormData默认使用multipart/form-data编码格式,可同时承载普通文本字段和上传文件。

内容的提问来源于stack exchange,提问作者DEBRANA DUTTA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 09:54:27