我不是 AJAX(或 jQuery)方面的专家,但是当我发送 ajax 请求时,我认为我正在做的事情很简单:
$.ajax ( requestObj );
它没有发送,我希望有人可以提供帮助。为了给出上下文,我将“requestObj”设置如下:
//initialise a request object
var requestObj = {};
requestObj.response = 'ajax-response';
requestObj.type = 'POST';
requestObj.url = my_config['ajax-service-list'][service]['url'];
requestObj.data = $.extend ( requestObj.data , {
action: service,
other: parameters,
_ajax_nonce: my_config['ajax-service-list'][service]['nonce']
});
requestObj.global = false;
requestObj.timeout = 30000;
requestObj.success = function ( r ) {
alert ( "Success: " + r );
}
requestObj.error = function ( r ) {
console.log ("FAILURE WITH AJAX Call ( " + JSON.stringify (r) + ")");
}
有一件事可能需要解释。对“my_config”的两个引用是对我使用 Wordpress 的 wp_localize_script() 函数设置的 Javascript 变量的引用。基本上它只是提供关于在哪里可以找到 URL、要使用的 NONCE 等的上下文。我已经测试过 URL 和 NONCE 信息工作正常,所以这不应该是问题。例如,我在定义两个引用后的浏览器调试器上放了一个断点并得到以下结果:
当我调用 ajax 函数时,它立即执行成功函数并发送值 0。查看我的 PHP 错误日志,虽然我可以看到请求从未发送过。实际发送请求可能会妨碍 $.ajax(requestOb) 吗?
更新:
感谢 Michael 的明智建议,我意识到我实际上收到了外出的请求,但由于它在本地环境中运行,因此响应速度很快。现在我怀疑这与 Wordpress 配置有关。我已经连接到 wp_ajax_[service_name] 但它立即返回 0。我将在 wordpress 论坛中使用这些新信息重新提出这个问题。