没有从ajax $ .post()返回的数据

时间:2011-02-21 22:28:10

标签: jquery ajax json post

我无法从我的jQuery AJAX帖子中获取任何响应文本:

$('document').ready(function()
{

    $('#saveRouteTrace').click(function(){

        // Build latStr and lonStr
        if(saveChanges()) {
            $.post('changeRouteTrace.php', {    
                    id: traceRouteId 
                   },
            function(data) {
                if(data.success) {
                    alert(data.reason);
                }
                else {
                    alert("Error: " + data.reason); 
                }                   
            }, 'json');
        }
    });
});

我正在回复如下的回复:

{ "success": true, "reason": "because it worked" }
来自服务器的

,但函数(数据)代码永远不会执行。我做错了什么?

2 个答案:

答案 0 :(得分:0)

如果发送请求并且响应看起来没问题,您可以使用FireBug进行检查。如果请求已发送,但您没有得到正确的响应,则可能更容易在HTML中创建测试表单并使用该表单发布数据。调试比使用javascript响应更容易,因为您可以在更改后继续刷新并在浏览器中检查响应。

答案 1 :(得分:0)

假设您的savechanges()函数返回一个值,此代码快照在我的系统中正常工作。

$(document).ready(function(){

    $('#saveRouteTrace').click(function(){

        // Build latStr and lonStr
        if(saveChanges()) {
            $.post('stackoverflowajax.php', {    
                    id: 9,
                    name:'Tsegay' 
                   },
            function(data) {
                    alert(data);
                if(data.success) {
                    alert(data.reason);
                }
                else {
                    alert("Error: " + data.reason); 
                }                  
            }, 'json');
        }
    });
        function saveChanges(){
            //This is a debuging code ... Make sure it return a value
                return true;
            }
    });

这是服务器端的文件。我正在回应json文件。

if(isset($_POST['id'])){
            //This do not work
            return '{ "success": true, "reason": "because it worked" }';
        //this works fine
        echo '{ "success": true, "reason": "because it worked" }';
    }