我正在尝试通过jquery $.ajax();
提交PHP表单。它成功提交,但是当我试图提醒消息时alert(SUCCESS);
成功。不是。任何猜测?
代码:
$.ajax({
url: 'basic_cms_manager_home_fb_form_submit.php',
type: 'POST',
data: formData,
cache: false,
dataType: 'json',
success: function(data, textStatus, jqXHR) {
if (typeof data.error === 'undefined') {
// Success so call function to process the form
alert("SUCCESS");
console.log('SUCCESS: ' + data.success);
} else {
// Handle errors here
console.log('ERRORS: ' + data.error);
}
},
error: function(jqXHR, textStatus, errorThrown) {
// Handle errors here
console.log('ERRORS: ' + textStatus);
},
complete: function() {
// STOP LOADING SPINNER
}
});
注意:我已经尝试过:console.log(data);其他技巧。我的问题是为什么警报不起作用,整个脚本工作时以及为什么它会给出解析错误?
答案 0 :(得分:1)
SUCCESS不是变量而是字符串。你需要像alert("SUCCESS");
此外,不推荐使用.success
和.error
方法。请改用.done
和.fail
,或者只需执行以下操作即可
$.ajax({
url: 'basic_cms_manager_home_fb_form_submit.php',
type: 'POST',
data: formData,
cache: false,
dataType: 'json',
success: function(data)
{
alert("SUCCESS");
console.log('SUCCESS: ' + data.success);
},
error: function(jqXHR, textStatus, errorThrown)
{
// Handle errors here
console.log('ERRORS: ' + textStatus);
},
complete: function()
{
// STOP LOADING SPINNER
}
});
另一件事
Typeof null
返回一个对象,因此如果data.errors
为null,则检查将失败。考虑做
if (!data.errors) {
...
}
如果你想坚持你的代码。
答案 1 :(得分:0)
data
有效JSON data.error
来自服务器,可能不是您认为的那样。使用console.log
确定其真实值。此外,将其更改为更有意义的内容,例如data.status => '成功'或'失败'
答案 2 :(得分:0)
简单。删除 - dataType:' json&#39 ;; &安培;使用 - formdata发送所有数据。
switch (_serverKind)
{
case Servers.test: ServerKindTrigger = 0;