jquery:$ .post成功处理程序不带其他{}

时间:2011-10-31 09:19:16

标签: javascript jquery

请在这种奇怪的情况下帮助我。 这是我第一次看到,if {} {}后,else {}无效。 =)))

onClick="$.post('itemupdate.php', { itemname: 'test' }, function(data) { if(data.status == 'error'){alert('error')} else {alert('OK')} }, 'json');"

警报'确定'永远不会出现。其他一切都井然有序。

2 个答案:

答案 0 :(得分:5)

  

如果使用jQuery.post()的请求返回错误代码,则会失败   除非脚本也调用了全局.ajaxError()   方法或。从jQuery 1.5开始,jqXHR对象的.error()方法   由jQuery.post()返回也可用于错误处理。

http://api.jquery.com/jQuery.post/

另外:如果要访问请求状态,回调函数将获得3个参数: data,textStatus,jqXHR。如果你返回糟糕的json,你的数据是null或未定义的,data.status将失败。

这是正确的代码。另外,我建议你不要把你的代码放在html属性中!

$.post('itemupdate.php', 
    { itemname: 'test' }, 
    function(data, status) { 
        if (status == 'error') {
            alert('error');
        } 
        else {
            alert('OK');
        } 
    }, 
    'json'
);

答案 1 :(得分:1)

刚刚输出一个名为ok的输出!

if (mysql_error()) { $return_arr["status"] = 'error'; } else { $return_arr["status"] = 'ok'; } echo json_encode($return_arr);

现在事情有效了!

function(data) { if(data.status == 'error'){alert('error')} if(data.status == 'ok') {alert('OK')} }