WordPress中的AJAX-路径问题

时间:2011-06-19 作者:byronyasgur

我正在WordPress中试用一点Ajax(通过jQuery)。我的一切都正常工作,但出于某种原因,我必须拥有PHP处理程序文件的完整URL,即使它与脚本位于同一目录中。

代码如下:

$.post(\'http://full/url/to/file.php\', $("#form").serialize(), function(data){
  do stuff
  ...
}); 
为什么我不能把“file.php”放进去呢?为什么需要完整的URL?或者更重要的是,如果最终用户每次都不需要输入完整的URL,那么我可以在那里输入什么内容来在任何网站上都可以工作?

P、 我读过Ajax的问题和PHP页面的路径,但我只是有点搞混了。我还阅读了WordPress codex上的Ajax插件页面,但没有看到相关的示例。我怀疑这可能与wp_localise_script() 但我不确定。

1 个回复
最合适的回答,由SO网友:Milo 整理而成

它需要一个完整的URL,因为即使它可能在后端相对正确的位置,但在前端,在页面最终提供服务的URL上,它却不在同一个位置。

你在正确的道路上wp_localize_script. 您希望将ajax脚本排队,然后将管理ajax url传递给wp_localize_script:

function my_init_method(){
    wp_enqueue_script( \'my-ajax-request\', plugin_dir_url( __FILE__ ) . \'js/my_ajax_script.js\', array( \'jquery\' ) );
    wp_localize_script( \'my-ajax-request\', \'MyAjax\', array( \'ajaxurl\' => admin_url( \'admin-ajax.php\' ) ) );
}
add_action(\'init\', \'my_init_method\');
现在,在ajax脚本中,您可以参考MyAjax.ajaxurl 用于URL。

Check this post 为了更好地在插件和主题中正确使用ajax,以下是WP Codex链接的示例。

结束

相关推荐

AJAX和指向php页面的路径有问题

我想从Ajax方法调用php页面:警报工作正常,代码也在wordpress之外经过测试,但这里似乎从未调用过php页面。我找到了一些文章,其中包括:How to manage ajax calls and JSON in wordpress但我更困惑了。你能告诉我在这里该怎么办吗?(对于“diapo.php”来说,它不起作用,而且也是这样)以下是jquery的调用: $(\'.sous-cat\').find(\'img\').click(function(){