【JQuery 】ajax 提交数据提示:Uncaught TypeError:Illegal invocation
报错解释:
"Uncaught TypeError: Illegal invocation" 错误通常发生在使用 jQuery.ajax
方法时,尝试使用不符合预期的方式提交数据。这个错误表明调用 jQuery.ajax
时传递的数据对象格式不正确,或者可能是 contentType
的设置问题。
解决方法:
- 确保传递给
data
选项的数据是一个字符串、一个数组或者一个对象。如果你正在传递一个FormData
对象,确保没有设置contentType
为application/x-www-form-urlencoded
或application/json
,因为FormData
对象已经定义了它自己的Content-Type
。 - 如果你设置了
contentType
为application/json
,并且你尝试发送的数据不是一个字符串,那么你需要先将数据转换为 JSON 字符串。
示例代码:
$.ajax({
url: 'your-endpoint',
type: 'POST',
data: yourData, // 确保这里的数据是有效的
contentType: 'application/json', // 如果你需要发送 JSON 数据
success: function(response) {
// 处理响应
},
error: function(xhr, status, error) {
// 处理错误
}
});
// 如果你发送的是 JSON 数据
var yourData = { key: 'value' };
yourData = JSON.stringify(yourData); // 将对象转换为 JSON 字符串
确保 data
是有效的,如果 contentType
被设置为 application/json
,那么 data
应该是一个 JSON 字符串。如果你正在使用 FormData
对象,则不需要设置 contentType
因为 FormData
自己处理了 Content-Type
。
评论已关闭