Wordpress 是不是在劫持我的 Ajax 表单帖子?

Posted

技术标签:

【中文标题】Wordpress 是不是在劫持我的 Ajax 表单帖子?【英文标题】:Is Wordpress hijacking my Ajax form post?Wordpress 是否在劫持我的 Ajax 表单帖子? 【发布时间】:2013-08-08 09:11:50 【问题描述】:

我是 Wordpress 的新手,也是 JQuery 的新手,所以让我开始解释我想要做什么。

我有一个管理页面,在这个页面内我让用户能够上传图片。我希望使用 Ajax 完成此操作(独立于一般表单更新)。

这是我目前的代码:

    在页面顶部 - 脚本包括:

我可以确认这些脚本是“可ping 通的”并且可以正常工作。

现在是 html 代码:

<table >
                <tr>
                    <td  style="padding:10px" valign="top">Email Image (180x180):</td>
                    <td style="padding:10px"><img id="previewEmailImage" width=180 height=180>

                    </td>
                </tr>
                <tr>
                    <td></td>
                    <td>
                        <div id='emailpreviewloader'>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td></td>
                    <td>
                        <form id="imageform" method="post" enctype="multipart/form-data" action="/ajaximage.php">
                            <input type="file" name="photoimg" id="photoimg" />
                        </form>
                    </td>
                </tr>
            </table>

HTML 中的关键内容是 a) 表单和 b) div emailpreviewloader。

现在就在 html 表之后,内联我有以下 js:

<script type="text/javascript">
                $(document).ready(function()
                
                    $('#photoimg').live('change', function()
                    
                        $("#emailpreviewloader").html('');
                        $("#emailpreviewloader").html('<img  src="/loader.gif" />');

                        $("#imageform").ajaxForm(function(result)
                            
                                alert("Thank you for your comment!");
                            );
                    );
                );
            </script>

出于测试目的,ajaximage.php 只包含 1 行:Echo "It working";

所以假设我的工作做得对,并且上面的 html + js 是正确的,看起来 Wordpress 可能会以某种方式劫持 Ajax 并阻止它按预期工作。这可能吗?

我只想有一个常规的 Ajax 帖子,这怎么可能?

编辑:

什么是有效的:

文件上传控件的更改事件正在触发。我已经通过警报确认了这一点,并且 loader.gif 是可见的。但似乎表单没有触发,或者没有正确触发。内心的警觉,永远不会触发。

【问题讨论】:

【参考方案1】:

如果您不想将 wordpress 的功能用于 ajax 调用,请尝试将表单发送到 action="&lt;?php bloginfo('template_url');?&gt;/ajaximage.php" 并确保该文件位于您的 wordpress 安装的根目录中。

【讨论】:

以上是关于Wordpress 是不是在劫持我的 Ajax 表单帖子?的主要内容,如果未能解决你的问题,请参考以下文章

wordpress 中的 Ajax 调用不适用于前端站点的订阅者用户

Wordpress:Ajax 无法插入、查询和结果数据

当 ajax 代码在 wordpress 的自定义插件中打开时,数据库表条目停止

动态加载 wordpress wp_editor (ajax)

SQL/Wordpress/AJAX:使用循环格式化 JSON

用 ajax 更新而不是替换 wordpress 自定义字段