为什么这个jquery不会触发.ajax()请求?

时间:2011-07-16 03:34:37

标签: jquery ajax types response

我有这个代码

// jquery
$(document).ready(function() { 
    $('#update_point').live("change", function() {
        var point_val = $('#update_point').val();
        $.ajax({
            url: 'send/user/update_point.php',
            type: 'get',
            data: 'point='+point_val,
            dataType: 'json',
            success: function(data){
                alert(data);
                $('#update_point_result').html(data);
            }
        });
        return false;
    });
});

为什么代码没有被解雇?但如果我删除dataType,代码可以工作。为什么?

// jquery
$(document).ready(function() { 
    $('#update_point').live("change", function() {
        var point_val = $('#update_point').val();
        $.ajax({
            url: 'send/user/update_point.php',
            type: 'get',
            data: 'point='+point_val,
            success: function(data){
                alert(data);
                $('#update_point_result').html(data);
            }
        });
        return false;
    });
});

任何帮助都会有所帮助! 谢谢!


修改

update_point.php包含此代码。

<?php
require "../../inc/json.php";
if($_GET){
    foreach($_GET as $key=>$val){
        $respon[$key] = $val;
    }
}

// initialitation json object

$json = new Json();
echo $json->encode($respon);
die();
?>

1 个答案:

答案 0 :(得分:5)

当JSON格式不正确时,

$.ajax喜欢默默地失败。使用jsonlint等工具检查服务器中的JSON是否格式正确。

您可以使用.error callback检查引发的错误类型:

$.ajax({
        url: 'send/user/update_point.php',
        type: 'get',
        data: 'point='+point_val,
        success: function(data){
            alert(data);
            $('#update_point_result').html(data);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            alert(errorThrown); // likely 'parseError'
        }
 });