我现在正在寻找解决问题的方法。 当我发送WP_Ajax_Response时,客户端没有收到它。 我检查了互联网上所有可能的提示,但我仍然无法使用它。 有人可以帮帮我吗?
我注册了javascript文件:
wp_register_script('test-ajax-js',get_template_directory_uri() . '/library/script/ajax.test.js', array( 'jquery', 'wp-ajax-response' ), '1.0' );
wp_enqueue_script( 'test-ajax-js');
wp_localize_script( 'test-ajax-js', 'ajaxtest',
array(
'Ajax_Url' => admin_url( 'admin-ajax.php' ),
'deshopNonce' => wp_create_nonce( 'deshop-ajax-test-nonce' )
)
);
这是PHP代码:
add_action('wp_ajax_shop_ajax_test', 'test_function');
add_action('wp_ajax_nopriv_shop_ajax_test', 'test_function');
function test_function() {
check_ajax_referer( 'deshop-ajax-test-nonce' );
$response = array( 'what'=>'validate_user_login',
'action'=>'validate_user_login_results',
'id'=>'1',
'data'=>'OK'
);
$xmlResponse = new WP_Ajax_Response($response);
$xmlResponse->send();
exit();
}
这是javascript文件:
jQuery(document).ready(function(event) {
var post = {
action: 'shop_ajax_test',
_ajax_nonce: ajaxtest.deshopNonce
};
jQuery.post( ajaxtest.Ajax_Url, post, function(response){
var res = wpAjax.parseAjaxResponse(response, 'ajax-response');
jQuery.each( res.responses, function() {
var a = 0;
});
});
});
调试res内容时显示响应= [0]。在jQuery.each函数中没有处理响应!
非常感谢任何可能对我有帮助的提示!
马克
答案 0 :(得分:0)
我遇到了同样的问题但我通过使用jQuery.ajax()而不是post()解决了它 这是一个可能
的链接答案 1 :(得分:0)
域,子域或协议是否完全不同?这会杀死Ajax响应,因为浏览器不会发送它。
另外,您是否使用过Firefox的firebug或Chrome的检查员,显然他们会向您显示请求和响应(或者为什么它没有到达那里)?