我正处于一个体面项目的最后一站(至少对我而言)而且我遇到了一个问题,我的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> <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> <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,它认为我已通过身份验证?
答案 0 :(得分:2)
<强>首先:强> 您没有使用Ajax调用发送“令牌”变量。您正在发送不包含令牌变量的变量dataString。您已将令牌部分评论出来......
var token="<?php echo $_GET['token'];?>";
var dataString = 'videoId='+ fields[0]; // + '&token=' + token;
<强>第二强> 您只能使用POST或GET发送Ajax
在您的ajax调用中您正在使用GET,因此您应该检查$ _GET;不是$ _SESSION。