在PHP中通过jquery发出ajax请求时维护$ _SESSION数据?

时间:2011-10-31 02:01:05

标签: php jquery ajax session-cookies gdata

我正处于一个体面项目的最后一站(至少对我而言)而且我遇到了一个问题,我的ajax请求没有将$ _SESSION数据发送到他们正在加载的URL。我正在尝试使用Gdata自动上传您的YouTube文件。我使用jquery创建一个ajax请求但是当我在我的ajax中测试$ _SESSION ['sessionToken']时,我得到了什么。

这是我的代码,即调用YouTube上传脚本:

function uploadVideos(id, upload, selected) {
        var status = document.getElementById('currentStatus');
        var fields = upload[id].split(":", 2);

        var token="<?php echo $_GET['token'];?>";
        var dataString = 'videoId='+ fields[0]; // + '&token=' + token;

        id++;
        status.innerHTML = "<b>Videos for Upload:</b>&nbsp;&nbsp;&nbsp; <h3 class='status'>Currently Updating Bout #" + fields[1] + " (" + id + " of " + upload.length + " videos)</h3>";

        $.ajax({  
            type: "GET",  
            url: "upload.php",  
            data: dataString,
            success: function(txt) {
                if (txt != 'Success') {
                    alert(txt);
                } 

                if (id < upload.length) {
                    uploadVideos(id, upload, selected);

                } else {

                    status.innerHTML = "<b>Videos for Upload:</b>&nbsp;&nbsp;&nbsp; <h3 class='status'>Completed</h3>";
                }

                //deselect the checkbox
                document.videos.video[selected[id-1]].checked = false;
                document.videos.video[selected[id-1]].style.display = 'none';
            },
            async: true

        }); 
}

如何将sessionToken发送到upload.php,它认为我已通过身份验证?

1 个答案:

答案 0 :(得分:2)

<强>首先: 您没有使用Ajax调用发送“令牌”变量。您正在发送不包含令牌变量的变量dataString。您已将令牌部分评论出来......

var token="<?php echo $_GET['token'];?>"; 
var dataString = 'videoId='+ fields[0]; // + '&token=' + token;

<强>第二 您只能使用POST或GET发送Ajax

在您的ajax调用中

您正在使用GET,因此您应该检查$ _GET;不是$ _SESSION。