我最近将我的服务器升级到了更好的服务器,经过几次轻微的颠簸后,几乎所有设备都正常运行。我仍然有一个问题,我很难过。在我的一个页面上,我对我网站上的php页面进行了JQuery .get()调用,以获取一些数据来填充日历。我用来进行AJAX调用的函数是:
function getBlackoutData(packageNum, nights, arrivalDate) {
if(!isRunning) {
isRunning = 1;
bodates.length = 0;
$.get("getBlackOutData.php", {
pkg: packageNum,
additional_nights: nights,
arrivalDate: arrivalDate
}, function(data) {
$.each(data.info, function(n,object) {
$.each(object, function(key,val) {
pkgInfo += key + '=' + val + '&';
$('#' + key).text(val);
});
});
$.each(data.dates, function(key, value) {
bodates[key] = value;
var pickedDate= $("#Checkin").val();
var pickedDateSplit = pickedDate.split("/");
pickedDate = pickedDateSplit[2] + pickedDateSplit[0] + pickedDateSplit[1];
if(value == pickedDate && $("#Checkin").val() != ""){
alert("The date you have chosen is not available with your current package");
$("#Checkin").val('');
}
});
if(bodates.length >= 120) {
$('#customer_info').html("<div class=\"packageError\">We're sorry, it appears that this package is not currently available. Please try another package or call 1-888-923-3378 for further avaliablity.</div>");
}
$('#customer_info').show();
$('#retail').html(data.retailNightPrice);
custPrice = $('#price').html();
$('#discount').html(data.retailNightPrice - custPrice);
}, "json");
isRunning = 0;
}
}
在我移动服务器之前,此调用很有效,并且使用适当的$ _GET参数直接访问getBlackOutData.php页面可以正常工作。现在我不仅没有从AJAX调用中得到预期的结果,我甚至没有得到http响应代码(我在FireBug中查看)。此外,使用FirePHP,我能够从我试图访问的PHP页面将调试数据打印到我的FireBug控制台,所以我知道我实际上正在访问该页面。有谁知道这可能是一个JQuery错误,甚至可能是服务器本身的配置错误?
答案 0 :(得分:1)
好的,问题解决了!显然,旧服务器似乎并不介意该站点的基本href是HTTPS,而该特定页面的链接只是HTTP。这显然引起了AJAX请求的问题。
答案 1 :(得分:0)
您的新服务器是否有mod_security?它可能会阻止请求。
你可能需要改变:
Access-Control-Allow-Origin“*” 访问控制允许方法“GET,POST” Access-Control-Allow-Headers“x-prototype-version,x-requested-with”
可能会改变你的ModSecurity whitelist.conf