jQuery $ .post()数据无法正确读取

时间:2012-06-22 17:25:01

标签: javascript jquery ajax .post

当尝试使用jQuery和AJAX在页面之间进行通信时,我遇到了一个奇怪的错误。我根本无法让$ .post()函数起作用!

$(document).ready(function() {
    $('#form').submit(function() {  
        $.post('test.php', {'name': 'joey', 'age': 12}, function(data){
                     alert(data);
        });

        return false;
    });
});     

test.php的:

<php?
    print_r($_POST);
?>

当我这样做时会发生什么事情我得到了[object XMLDocument]的警报,但是如果我添加'text'作为post中的最后一个参数,它会使用该文件的完整php代码进行警报。

我的问题是我打电话的时候:

$.post('test.php', {'name': 'joey', 'age': 12}, function(data){
                 $('#content').html(data);
       });

这会在firebug上出现错误。 'content'是一个div。当我执行.html('test')时它会起作用,但如果我执行.html(数据)则不行。

知道我做错了吗?

修改 这是一个包含我整个项目的dropbox文件夹(如3个文件),如果有人可以花3-4分钟查看它,它会帮助我一吨!我被困在这里几天

https://www.dropbox.com/sh/ns73titud46kea7/aElaYx728G

3 个答案:

答案 0 :(得分:2)

<php?
    print_r($_POST);
?>

应该阅读

<?php
    print_r($_POST);
?>

我认为php被解释为XML节点,但显然它不是有效的html

答案 1 :(得分:1)

无所谓,但请尝试将数据类型设置为'html'

$.post('test.php', {'name': 'joey', 'age': 12}, function(data){
    $('#content').html(data);
}, 'html');

或尝试使用.load()

$('#content').load('test.php', {'name': 'joey', 'age': 12});

你可能还想尝试在引号中加入12,只是为了规范...

$('#content').load('test.php', {'name': 'joey', 'age': '12'});

答案 2 :(得分:0)

我在回复方面有点迟,但可能是你有无效的json?

{'name': 'joey', 'age': 12}

应该是

'{"name": "joey", "age": "12"}'