微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

wordpress 中的 AJAX 调用只能在开发计算机上工作

如何解决wordpress 中的 AJAX 调用只能在开发计算机上工作

我正在通过 eventListener 从 CF7 联系表单捕获提交事件。它不应阻止认操作,即简单地向我的地址发送邮件,而是将输入的表单数据添加自定义表中。

在我的计算机上提交表单时效果很好 - 即使系统在服务器上运行。但它不适用于任何其他设备。相反,我收到了一个 400 Bad Request,根本没有任何其他信息。

以前有人遇到过这个问题吗?

var wpcf7Elm = document.querySelector('.wpcf7');
    
wpcf7Elm.addEventListener('wpcf7submit',function (e) {
    // Get input,save it as JSON object
    var inputs = e.detail.inputs;
    var data = {};
    inputs.forEach(function(value,key){
        data[value.name] = value.value;
    });
    var json = JSON.parse(data);

    // Get form ID,the following code should only be executed for a specific WPCF7 form
    var form_id = e.detail.contactFormId;
       
    if (form_id === '244') {
           
       // Ajax request to save data to table
       jQuery.ajax({
             type : "post",url : myAjax.ajaxurl,data : json,datatype: 'json',contentType: 'application/json',success: function(response) {
                     // nothing to do so far
                 }
       });
   }
},false);  

PHP 代码如下:

add_action( 'init','my_script_enqueuer' );
    
function my_script_enqueuer() {
   wp_register_script( "my_booking_script",get_stylesheet_directory_uri().'/js/edit_guest.js',array('jquery') );
   wp_localize_script( 'my_booking_script','myAjax',array( 'ajaxurl' => admin_url( 'admin-ajax.PHP' )));        
    
   wp_enqueue_script( 'jquery' );
   wp_enqueue_script( 'my_booking_script' );
 
}
    
add_action("wp_ajax_add_booking","add_booking");
    
function add_booking() {
    global $wpdb;
        
    var_dump($_POST);
    
    // DB insert here ... 

    die();  
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。