0

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

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

        return false;
    });
});     

测试.php:

<php?
    print_r($_POST);
?>

当我这样做时会发生什么是我收到带有 [object XMLDocument] 的警报,但是如果我添加“文本”作为 post 中的最后一个参数,它会使用文件的完整 php 代码发出警报。

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

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

这会在 firebug 上引发错误。“内容”是一个 div。它在我执行 .html('test') 时有效,但在执行 .html(data) 时无效。

知道我做错了什么吗?

编辑: 这是一个包含我的整个项目(如 3 个文件)的保管箱文件夹,如果有人可以花 3-4 分钟浏览它,那将对我有很大帮助!我在这里被困了几天

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

4

3 回答 3

2
<php?
    print_r($_POST);
?>

应该读

<?php
    print_r($_POST);
?>

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

于 2012-06-22T17:27:44.543 回答
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'});
于 2012-06-22T17:38:23.437 回答
0

我的回复有点晚了,但可能是你有无效的 json 吗?

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

应该

'{"name": "joey", "age": "12"}'
于 2012-08-24T16:07:17.503 回答