在jQuery中使用AJAX调用在小部件中不起作用

时间:2012-01-29 作者:Danny

因此,我正在创建一个新的转换小部件,在小部件中使用Ajax调用时遇到了一些问题。(在WordPress之外工作得非常好)。

目前的问题是,它在#结果div中输出整个主页,而不仅仅是结果图:

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

如果您的AJAX Url是转换。php它很可能指向您的域。com/转换。php。你的文件在那个位置吗?

看起来没有,我想你没有404。php,在这种情况下,您的请求将被定向到您的索引。php,这就是为什么您可以获得主页的内容。

如果文件位于主题文件夹中,则必须将URL更改为wp content/themes/yourtheme/conversion。php

但是easier and recommended 方法是使用WP内置的AJAX功能:有关更多信息,请参阅此codex页面:http://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)

编辑:关于这个主题的大多数帖子都是针对WordPress后端的AJAX,但也可以在前端使用它。

SO网友:Martin Zeitler

很抱歉,ungestaltbar的一些评论并不完全正确。

无法在上面发表评论,但这几乎是一个答案。

使用管理ajax时。前端的php。。。

需要将两者挂钩,wp\\u ajax\\u(action)&;wp\\u ajax\\u nopriv\\u(操作)在前端和后端,否则它将无法工作。

返回整个页面的原因可能是XHR调用被重写规则截获-WP是一个单点访问应用程序。

语法如下:

add_action(\'wp_ajax_nopriv_conversion\', array(&$this, \'do_conversion\'));
add_action(\'wp_ajax_conversion\', array(&$this, \'do_conversion\'));
这听起来可能不太合乎逻辑,但我很确定(最近在一个项目中使用)。

结束