无法使用ajax请求

时间:2017-10-29 08:05:26

标签: javascript php ajax

我有一个带有从DB获得的变量$ consult_id的php文件,如下所示:

$consult_id = $row['consult_id'];   

相同的php文件在底部包含另一个文件2 ,其中包括php和JavaScript。相关代码是:

$http({
method: 'get',
url: 'inc/token.inc.php'
}).then(function(response) {
//alert(response);
data = JSON.parse(response);

file 2 中上述代码中引用的 token.inc.php 文件如下:

$apiObj = new MYAPI(API_KEY, API_SECRET);
$sessId = $consult_id;
$connectionData = $name; 
$token = $apiObj->generateToken($sessionId , array(
    'data'       => $connectionData
));
$dresponseData = array(
        'sessionId' => trim($sessId),
        'token'=>trim($token)
    );

echo json_encode($dresponseData);

如果我在下面对字符串进行硬编码,那就完美了:

$sessId = XXXXXXXXXX; //insead of $consult_id

我尝试了以下内容以及很多其他事情但没有成功:

$sessId = json_encode($consult_id,JSON_HEX_TAG);

$ sessId始终提供 null

我知道它与“ajax和php”有关,但作为新手无法识别问题。

对字符串进行硬编码工作正常。

1 个答案:

答案 0 :(得分:0)

token.inc.php文件是一个单独的文件。 变量$consult_id正在另一个文件中定义,所以即使你有一个ajax请求 - 它与php的变量范围无关。

如果您使用PHP命令(例如:include/require)包含token.inc文件 - 那么,就可以访问该变量。

您需要做的是在ajax请求中使用data参数(正如我在评论中建议的那样)并将该变量传递给另一个文件。

<强> JS:

$http({
method: 'post', //changed to post
data: {consultId: '<?php echo $consult_id; ?>'}, //added the 'data' parameter
url: 'inc/token.inc.php'
}).then(function(response) {

在token.inc.php文件中:

$sessID = $_POST['consultId'];