在另一个ajax函数的success函数中使用ajax请求

时间:2013-03-25 06:44:30

标签: ajax wordpress jquery

我正在为Wordpress内置的应用程序添加一些自定义JS来设置约会,这样如果发出约会请求,客户端和工作人员都会收到请求电子邮件。通过按下按钮进行约会,并通过将按钮绑定到.click()事件来进行请求。

要发送电子邮件,我将ajax函数放在第一个ajax函数的成功函数中以批准约会,这样如果约会被批准,则会发送电子邮件。我试图设置它,但发现无论我做了什么,成功函数内的第二个ajax函数都不会触发,甚至无法正确报告错误是什么。

为了测试这是否是错误的ajax函数本身,我把它从成功函数中取出并放在$(document).ready(function(){})中,将它绑定到另一个事件,看它是否会发射 - 它确实发生了。所以函数本身不是问题,而是它在另一个 ajax请求的成功函数内。

我该怎么办才能解决这个问题?关于Stack Overflow的其他建议最多也很混乱,所以请原谅我再次提问,但似乎没有一个明确令人满意的答案。

这是我在第一个ajax请求的回调函数中放入的代码,当我把它放在回调函数之外并将其绑定到不同的eventy时,它运行得非常好。

    $.ajax({  
              type: "POST",  
              dataType: "JSON", 
              url: "[home url]/wp-admin/admin-ajax.php",  
              data: "action=finchJsonTest",  
              success: process_lesson_request,  
              error: function(MLHttpRequest, textStatus, errorThrown){  
                        alert(errorThrown);
                        alert("Something\'s not right!");   
              }  
       });                                     

              function process_lesson_request(data) {
                          alert("Hooray!");  
                          console.log(data);                                               
              }  

这是PHP函数,WordPress的调用来处理这个Ajax请求(在数据串的“动作”变量确定) - 没有什么太重要的事情,我只是测试,看它是否会成功返回JSON对象

function finchJsonTest() { 
    $json_array[] = 'This is something!'; 
    $finaljson_array = json_encode($json_array); 
    echo $finaljson_array; 
    die(); 

}  

add_action( 'wp_ajax_nopriv_finchJsonTest', 'finchJsonTest' );  
add_action( 'wp_ajax_finchJsonTest', 'finchJsonTest' );

同样,如果我使用这个ajax调用自己绑定到某个事件,它完美地工作并返回所需的JSON对象(只是文本说'这是某事'),但是如果我把它放在成功的回调函数中另一个ajax请求,它失败了,甚至没有抛出错误。事实上,我已经阅读了与此相关的其他Stack Overflow帖子,并且无法做出正面或反面的操作。有什么想法吗?

0 个答案:

没有答案