jQuery$.get从物理客户端站点返回403



这是最奇怪的事情,只有从我的客户的物理位置来看才会发生这种情况。我使用$.getjQuery函数对一个较大表单中的三个表单部分执行服务器端验证。在每个部分之后,$.get调用PHP验证脚本。只有在客户端物理站点上,脚本才会在第三次也是最后一次验证调用中返回403错误——前两次过程正常。我还可以使用各种浏览器IE8+、Chrome、FF、Windows、Mac从其他位置运行整个表单,而不会出现任何问题。

我还没有固定它,但我有一种预感,这与网站的内部域与外部域相似有关,除了.local表示本地,.com表示外部。我在调用$.get时使用了FQDN,但仍然得到错误。

我已经将问题隔离到传递给$.get的数组变量上——这对我来说毫无意义,我已经尝试更改变量中的所有值,甚至变量名等。

当添加到*finish_array*时,*services_explain_array*数组是导致问题的原因,当忽略时,一切都按预期工作。

更新

当检查FF上的网络调试时,第三个也是最后一个$.get调用从未知服务器"GoAhead WebServer"返回,而不是我的实际web服务器"Apache"


    //SET OTHER SERVICES REQUIREMENTS
var services_other_required;
if ($('#otherservices').prop('checked') === true) {
    services_other_required = 'required';
} else {
    services_other_required = '';
}
//CREATE ELEMENT ARRAYS
//GET ALL SERVICES INPUT ELEMENTS THAT ARE CHECKED AND ADD THEM TO AN ARRAY 
var services_checked_array = [];
$("#services_method input").each(function (index, value) {
    if ($(this).prop('checked') === true) {
        services_checked_array.push($(this).data("display"));
    }
});
//CONVERT INPUT ELEMENTS FROM ARRAY TO STRING TO BE VALIDATED
var services_val = services_checked_array.join(', ');
//CREATE ELEMENT ARRAYS
var services_array = new Array('services', services_val, 'alphnum', 'required');
var services_explain_array = new Array('servicesexp', $('#servicesexp').val(), 'alphnum', services_other_required);
var delivery_array = new Array('delivery', $('#delivery').val(), 'word', 'required');
var additional_array = new Array('additional', $('#additional').val(), 'alphnum');
//CREATE SECTION ARRAY
var finish_array = new Array(services_array, delivery_array, additional_array);
validate(finish_array, 'finish', 'summary');

function validate(validation_array, current_section, next_section){ 
$.get("order/validate.php", {'input_array' : validation_array}, 
function(data){ /** LOTS'o'Stuff HERE **/ }, 'JSON'); }

如果您看到"GoAhead Web服务器",您可能正在与网络WIFI网关或交换机中的嵌入式路由器交谈。

最新更新