使用AJAX调用成功但无法访问PHP中的变量,但可访问Cookie

时间:2018-02-04 10:42:55

标签: php jquery ajax

我是AJAX的新手,我遇到的问题让我发疯。

我有一个基于用户点击页面一部分调用的函数。该函数被调用,并将点击的变量发送到:

"link" => "JavaScript:getTeamMembers($teamID[$teamCount], $lecturer_id)"

以下是调用的函数和我的AJAX:

function getTeamMembers(teamID,lecturer_id) {

  var teamID = teamID;
  var lecturer_id = lecturer_id;


jQuery.ajax({
    type: "POST",
    url: 'dashboard.php',
    contentType: "application/x-www-form-urlencoded; charset=UTF-8",
    cache: false,
     data: { teamID: teamID, lecturer_id: lecturer_id },
     success: function(){
        alert("It Works!");
    },
    fail: function(error) {
        console.log(error);
    },
    always: function(response) {
        console.log(response);
    }
     }
   ); 
}

这些都在同一个文件 dashboard.php

再次在dashboard.php中,我尝试访问发送的数据如下:

if (!empty($_POST['teamID'])) {

$teamID = $_POST['teamID'];  
$lecturer_id = $_POST['lecturer_id'];


echo $teamID;
echo $lecturer_id;

} else {

echo "no teamID supplied";
}

然而,我无法回应任何事情。我从我的AJAX查询中获得成功回调。我已经尝试了var_dump,但没有。

我最终放弃了它并使用了Cookie,以下作品:

function getTeamMembers(teamID,lecturer_id){

// then you store the values in a cookie
document.cookie = "teamID="+teamID; 
document.cookie = "lecturer_id="+lecturer_id;

location.reload();

}

我成功访问了这里的变量

if (isset($_COOKIE["teamID"])) {

$teamID = $_COOKIE["teamID"];   
$lecturer_id = $_COOKIE["lecturer_id"];

echo $teamID;
}

问题是,如果可能的话,我真的不想重新加载页面来访问我的数据,因此我为什么要弄清楚发生了什么。

我的文件中包含<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

来自控制台的响应标题:

Request URL:http://foo.co.uk/bar/dashboard.php
Request Method:POST
Status Code:200 OK
Remote Address:xx.xx.xx.xx:xx
Referrer Policy:no-referrer-when-downgrade
Response Headers
view source
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:keep-alive
Content-Type:text/html; charset=UTF-8
Date:Sun, 04 Feb 2018 14:04:26 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Pragma:no-cache
Strict-Transport-Security:max-age=15768000
Transfer-Encoding:chunked
Request Headers
view source
Accept:*/*
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.9
Connection:keep-alive
Content-Length:45
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
foo.co.uk
Origin:http://foo.co.uk
Referer:http://foo.co.uk/bar/dashboard.php
X-Requested-With:XMLHttpRequest
Form Data
view source
view URL encoded
teamID:73
lecturer_id:59bea8b7d56a63.33388595

更新:

我刚刚发现我请求的数据在页面刷新后可用,这会破坏使用AJAX的对象。

0 个答案:

没有答案