JQuery.post() ASP.NET 核心 MVC 中的方法
JQuery.post() method in ASP.NET Core MVC
我正在使用 FormData 向我的服务器发送一些数据
submit.click(function (event) {
event.preventDefault();
let formData = new FormData();
//filling data
}
然后我想用$.post()
以这种方式将我的表单发送到服务器
$.post('CreateProduct', formData);
但它不起作用,我收到此 异常
否则,当我 post 我的数据与 $.ajax
一起工作时,它完美地工作
$.ajax({
url: 'CreateProduct',
data: formData,
processData: false,
contentType: false,
type: 'POST'
});
是否有机会使用 $.post
而不是 $.ajax
?我错过了什么吗??
我试过这样改,效果很好
$.post({
url: 'Submit',
data: formData,
processData: false,
contentType: false
});
有什么改进建议吗?
看来你可能会遇到jQuery添加内容类型header,会导致边界字符串丢失
您必须将 contentType 选项设置为 false 以强制 jQuery 不为您添加 Content-Type header,否则,边界字符串将丢失。此外,您必须将 processData 标志设置为 false,否则,jQuery 将尝试将您的 FormData 转换为字符串,但会失败。
并且我们在ajax中将contentType设置为false,防止JQuery对其进行操作,从而丢失分隔符,导致服务器无法正常解析文件。
像你改变了:
$.ajax({
url: 'CreateProduct',
data: formData,
processData: false,
contentType: false,
type: 'POST'
});
我正在使用 FormData 向我的服务器发送一些数据
submit.click(function (event) {
event.preventDefault();
let formData = new FormData();
//filling data
}
然后我想用$.post()
以这种方式将我的表单发送到服务器
$.post('CreateProduct', formData);
但它不起作用,我收到此 异常
否则,当我 post 我的数据与 $.ajax
一起工作时,它完美地工作
$.ajax({
url: 'CreateProduct',
data: formData,
processData: false,
contentType: false,
type: 'POST'
});
是否有机会使用 $.post
而不是 $.ajax
?我错过了什么吗??
我试过这样改,效果很好
$.post({
url: 'Submit',
data: formData,
processData: false,
contentType: false
});
有什么改进建议吗?
看来你可能会遇到jQuery添加内容类型header,会导致边界字符串丢失
您必须将 contentType 选项设置为 false 以强制 jQuery 不为您添加 Content-Type header,否则,边界字符串将丢失。此外,您必须将 processData 标志设置为 false,否则,jQuery 将尝试将您的 FormData 转换为字符串,但会失败。
并且我们在ajax中将contentType设置为false,防止JQuery对其进行操作,从而丢失分隔符,导致服务器无法正常解析文件。
像你改变了:
$.ajax({
url: 'CreateProduct',
data: formData,
processData: false,
contentType: false,
type: 'POST'
});