我正在使用jQuery来发起ajax请求。 使用jQuery调用请求时,我收到“意外的输入结束”错误,并且没有来自PHP文件的响应,但是如果我将请求从Chrome控制台复制为curl并运行它,比如linux命令行,我得到了正确的回应。
这是ajax函数:
var form = $('#edit form').first();
$.ajax({
url: 'upload.php?uuid=' + uuid,
type: 'POST',
data: form.serialize(),
cache: false,
success: function(data) {
console.log(data);
},
error: function( jqXHR, textStatus, errorThrown ){
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown);
}
});
我已经检查过是否可能是Chrome问题,但它似乎也会在其他浏览器中出现。
提前致谢
答案 0 :(得分:0)
我认为你遗失了contentType
,如果你的dataType
也是json,那也是如此
试试这个
var form = $('#edit form').first();
$.ajax({
url: 'upload.php?uuid=' + uuid,
type: 'POST',
data: form.serialize(),
cache: false,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(data) {
console.log(data);
},
error: function( jqXHR, textStatus, errorThrown ){
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown);
}
});
答案 1 :(得分:0)
事实证明,问题出在form.serialize()上。它把它变成了一个字符串,并以某种方式没有将它作为POST请求处理。我必须使'data'成为一个对象,它获取每个表单输入的值并且它有效。