我希望在不使用JQuery的情况下发出Ajax请求,并且不包括wp_load.php
. 我想用香草XmlHttpRequest
我自己写的对象。
有任何链接、提示、以前做过的事情等吗?
我希望在不使用JQuery的情况下发出Ajax请求,并且不包括wp_load.php
. 我想用香草XmlHttpRequest
我自己写的对象。
有任何链接、提示、以前做过的事情等吗?
在一个新的应用程序中回到这一点。我只是使用Angular解决了这个问题,类似的方法也可以用于vanilla JS。
首先,让Javascript访问admin-ajax.php
URL,类似于:
echo "<script type=\'text/javascript\'>var ajaxurl = \'".admin_url(\'admin-ajax.php\')."\'</script>";
下一步,在functions.php
, 注册希望Ajax执行的操作:add_action("wp_ajax_infiniteScroll", "infiniteScroll");
add_action("wp_ajax_nopriv_infiniteScroll", "infiniteScroll");
。。。并添加与上述操作的第二个参数相对应的操作处理程序:function infiniteScroll() {
// This is what\'s returned to the client.
echo "foo";
die();
}
现在,你所有的鸭子都排成一行了。呼叫ajaxurl
使用action
参数设置为您在上面所做的操作,并且所有操作都应正常工作(以下示例为角度):$http({ url: ajaxurl + "?action=infiniteScroll" })
.success(thenPopulate)
.error(thenError);
大多数解决方案“需要”JQuery(不需要),并且wp_enqueue_scripts()
和其他一些“方便”功能(也不是必需的)。主要的事情是,让URL对JS可用,注册一个操作,然后在请求中发送该操作。对于那些关注全球可见的ajaxurl
, 我读到的关于使用的所有其他解决方案wp_localize_script()
这就是一个全局变量。使用上述方法,您至少可以对其范围有一点控制。
如果您所需要做的只是获取关于一篇/多篇文章的数据,我将郑重建议您使用JSON API插件(http://wordpress.org/plugins/json-api/).
我使用它向wp url发出普通xmlhttp请求并返回json
我使用函数“传递”数据get_num_queries 从前端到后端(到插件选项页)。 function get_queries_wpse_143544() { $dbq = get_num_queries(); update_option(\'page_queries\',$dbq); } add_action(\'wp_footer\', \'get_queries_wpse_143544\', 999); (*感谢@s_ha_dum 对于func