0

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

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

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

我该怎么做才能让它着火?关于 Stack Overflow 的其他建议充其量是非常令人困惑的,所以请原谅我再次询问,但似乎没有明确的令人满意的答案。

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

    $.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);                                               
              }  

这是 Wordpress 调用来处理这个 ajax 请求的 php 函数(由数据字符串中的“action”变量确定)——没有什么太重要的事情发生,我只是在测试它是否会成功返回一个 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 帖子,但无法确定要做什么。有什么想法吗?

4

0 回答 0