在我的AJAX提交上触发一个传统函数

时间:2012-11-27 作者:dkmojo

我正在为我的家人开发一个小型社区风格的网站。它主要是社交网络的一个小版本,这样我的侄女和侄子就可以互相取乐了。

我已经设置了“freinding”功能,它工作得很好。但是,当我响应朋友的请求时,会触发一个额外的ajax函数。我的AJAX功能可以工作并更新数据库,但无法发送电子邮件通知,我认为这是由于启动了额外的AJAX功能。

提交响应(接受或忽略)后,FireBug显示我的AJAX函数已临时移动-我看到一个302临时移动错误。就在它下面的另一个GET请求为我登录的用户触发。FireBug中的标题如下所示:

Cache-Control   no-cache, must-revalidate, max-age=0
Connection  Keep-Alive
Content-Type    text/html; charset=UTF-8
Date    Tue, 27 Nov 2012 20:51:46 GMT
Expires Wed, 11 Jan 1984 05:00:00 GMT
Keep-Alive  timeout=10, max=29
Last-Modified   Tue, 27 Nov 2012 20:51:46 GMT
Pragma  no-cache
Server  Apache
Transfer-Encoding   chunked
Vary    Accept-Encoding
X-Pingback  http://obeliskwebdesign.com/sandbox/family-site/xmlrpc.php
我不知道这个附加功能是什么,也不知道它为什么会启动。我在网站上还有其他几个AJAX功能,它们工作得很好,之后没有其他功能启动,所以我在这里有点不知所措。

如果有人能解释这可能是什么原因,或者如果这可能导致我的电子邮件通知无法发出,请让我知道。谢谢

----编辑---------------------------------------------------------

我的AJAX功能:

//ajax for friend response submission
jQuery(\'.friend-request-response\').click(function(event){
    event.preventDefault();
    var id = $(this).attr(\'rel\');
    var form = jQuery( \'form#friend-response-form-\'+id ),
        friend_request_response_nonce = form.find( \'input[name="friend_request_response_nonce"]\' ).val(),
        request_id = form.find( \'input[name="request_id"]\' ).val(),
        userid = form.find( \'input[name="userid"]\' ).val(),
        friend_id = form.find( \'input[name="friend_id"]\' ).val(),
        status = form.find( \'input[name="status"]\' ).val();

    jQuery(\'div#request-\' + id + \'ul\').hide(\'slow\');
    jQuery.post(
        UiAjax.ajaxurl,
        {
            action : \'friend_request_response_action\',
            friend_request_response_nonce : friend_request_response_nonce,
            //other parameters
            request_id : request_id,
            userid : userid,
            friend_id : friend_id,
            status : status
        },
        function( response, data ) {
            var new_status = ucFirst( status );
            jQuery(\'div#request-\' + id).html(\'<p>\' + new_status + \'</p>\').show(\'slow\');
        }
    );
    return false;       
});

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

经过一番挖掘,我发现我用来处理电子邮件通知的方法是以字符串形式接收用户ID。当我将其转换为整数时,所有通知都开始发送。因此,启动的额外AJAX功能对发送通知电子邮件没有影响。

结束