【问题标题】:cannot get post values send with ajaxcall无法获取使用 ajaxcall 发送的帖子值
【发布时间】:2009-07-06 12:37:37
【问题描述】:

我的问题是: 我正在尝试检索后值,但是每当我将该语句放在 php 代码中时,ajaxcall 都会失败。

我看不到我在这里缺少什么??

$.ajax({
            url: "includes/livetabs.php?actie=sessiegebruikersnaam", 
            data: {gebruikersnaam: tbgebruikersnaam},
            cache: false,
            dataType: "json",
            success: function(data) {
            //opslaan van gebruikersnaam in php sessie
        /*$.post("includes/livetabs.php", {"sessiegebruikersnaam": chatnaam},
                 function(data){*/
                    //doe nog iets
                aa= data.status;
                bb=data.naam;
            //krijg de instellingen terug
            alert(aa);
            alert(bb);  
        }});

//php section
if(isset($_GET['actie'])){
**$n=$_POST['gebruikersnaam'];**
    if ($_GET['actie']=="sessiegebruikersnaam"){
    if (!isset($_SESSION['username'])){
    $_SESSION['username'] = $n ;}
    header('Content-type: application/json');
    //geef ook meteen de secondary instellingen terug

    ?>

{
        "status": "somevalue",
        "naam": "anothervalue"
}
    <?php
    exit(0); // Stop het script.
    }
}

谢谢,理查德

【问题讨论】:

    标签: jquery ajax json


    【解决方案1】:

    编辑:您传递给服务器的内容应该用括号括起来,另外,为了清楚起见,我会指定请求的类型:

    data: ({gebruikersnaam : tbgebruikersnaam}),
    type: "POST", //just in case
    

    格式错误的 json 将无法与 $.ajax 一起使用。尝试在服务器上使用json_encode 生成json:

    //php section
    if(isset($_GET['actie'])){
    **$n=$_POST['gebruikersnaam'];**
        if ($_GET['actie']=="sessiegebruikersnaam"){
        if (!isset($_SESSION['username'])){
        $_SESSION['username'] = $n ;}
        header('Content-type: application/json');
        //geef ook meteen de secondary instellingen terug
        echo json_encode(array('status' => 'someValue', 'naam' => 'anotherValue'));
        exit();
        ?>
    

    另外,使用$.getJSON 代替$.ajax 可能更清楚。

    【讨论】:

    • 您还需要确保在最终回显之前没有其他任何内容输出到客户端。
    • 但是除了这两个测试值之外,我不输出任何东西,它们可以工作。只是当我要求它不起作用的后值时。
    • 太好了,谢谢。您的最后一次编辑成功了。我是其中之一或两者都使它起作用。
    • @Richard 如果这个答案解决了你的问题,你可以考虑接受它。
    猜你喜欢
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 2011-02-26
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    相关资源
    最近更新 更多