使用下面的代码时,我无法设置正确的位置。不知何故,在回调文件中无法识别 php 常量,因此其余代码无法正常工作。
来自html的片段:
<a href="#" class="selectLocation" id="ABC">
来自 .js 的片段
var locationID;
$(".selectLocation").click(function(){
locationID = this.id;
setLocation();
});
function setLocation() {
$.ajax({
data: {location: locationID},
success: function (data) {
// do something
};
});
};
// DEFAULT AJAX SETUP
$(function () {
$.ajaxSetup({
type: "POST",
url: "dir/callback.php",
dataType: "json",
cache: "false",
error: function (jqXHR, exception) {
if (jqXHR.status === 0) {
console.log('No connecting.\n Verify Network.');
} else if (jqXHR.status == 400) {
console.log('Bad Request. [400]');
} else if (jqXHR.status == 404) {
console.log('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
console.log('Internal Server Error [500].');
} else if (exception === 'parsererror') {
console.log(jqXHR.responseText);
console.log('Requested JSON parse failed.');
} else if (exception === 'timeout') {
console.log('Time out error.');
} else if (exception === 'abort') {
console.log('Ajax request aborted.');
} else {
console.log('Uncaught Error: ' + jqXHR.responseText);
};
}
});
来自 callback.php 的片段:
<?php
header("content-type:application/json");
session_start();
require_once ('config.php');
...
$connect->setLocation($_POST['location']);
$_POST['location']; 将 ABC 发送到我的代码的其余部分,而不是下面定义的正确值。
来自 config.php 的片段:
define('ABC', 'some location');
如果我这样做:
echo (ABC);
在回调文件中,我会得到正确的位置值。