JQuery ajax 提交数据提示:Uncaught TypeError:Illegal invocation


在这里插入图片描述



1 问题描述

用jQuery Ajax向DRF接口提交数据的时候,console提示:Uncaught TypeError:Illegal invocation(未捕获的异常:非法调用)
在这里插入图片描述
这个问题可能有两种原因导致。

  • ajax调用了未定义的参数
  • 创建了Form对象上传文件,但是未将Ajax的processDatacontentType两个参数设置为false

2 解决方案

2.1 未定义的参数

console.log()一下参数,看看哪个参数在未声明前调用。

2.2 用于上传文件 创建了Form对象

由于文件是字节序列,所以需要将processDatacontentType两个参数设置为false,否则也会出现Uncaught TypeError:Illegal invocation。

$.ajax({
   url: url,
   type: 'POST',
   data: your_form_data,
   async: false,
   // 下面这两个参数
   processData: false,
   contentType: false,
   success: function (res) {
      // code
   }
   error: function (res) {
     // code
   }
})

不排除有其他情况。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐