簡體   English   中英

POST admin-ajax throw error 400 - 找不到自定義函數

[英]POST admin-ajax throwing error 400 - not finding custom functions

我正在添加一個應該在單擊按鈕時調用的函數,我有一個帶有以下jquery代碼和ajax調用的js文件:

jQuery(document).ready( function() {

   function getUrlParameter(sParam){

      var sPageURL = window.location.search.substring(1);

      var sURLVariables = sPageURL.split('&');

      for (var i = 0; i < sURLVariables.length; i++) {
         var sParameterName = sURLVariables[i].split('=');
         if (sParameterName[0] == sParam) {
            return sParameterName[1];
         }
      }
   }

   jQuery('#upload_btn').click( function(e) {

      e.preventDefault(); 

      var flag = true;
      var postId = getUrlParameter('preview_id');
      var files = jQuery('#file_tool').prop('files');
      console.log(files);

      var dataS = {
         'action': 'upload_button',
         'preview_id': postId,
         'files': files,
         'set': flag
      }
      jQuery.ajax({
         type : 'post',
         url : diario.upload,
         processData: false,
         contentType: false,
         data : dataS,
         success: function(response) {
            if(response.type == "success") {
               console.log('jquery works');
            } else console.log(response);
         }
      });

   });

 });

當我點擊按鈕時,console.log顯示文件obj,所以至少onClick工作,但就在它之后它顯示jquery.js:4 POST custom / wp-admin / admin-ajax.php 400 這就是我的functions.php的樣子:

add_action( 'wp_enqueue_scripts', 'enqueue_onClick_upload' );

//custom_js_enqueuer
function enqueue_onClick_upload() {

    wp_register_script( 'onClick_upload', WP_CONTENT_URL.'/themes/microjobengine/onClick_upload.js', array('jquery') );
    wp_localize_script( 'onClick_upload', 'diario', array( 'upload' => admin_url( 'admin-ajax.php' )));        

    wp_enqueue_script( 'jquery' );
    wp_enqueue_script( 'onClick_upload' );

}


add_action('wp_ajax_upload_button', 'upload_button');
add_action('wp_ajax_nopriv_upload_button', 'upload_button');

// upload button function
function upload_button() {

    $postID = $_POST['preview_id'];

    if ($_POST['set']) {
        if($_POST['files']['size'] === 0 ) 
            echo "<script>console.log('There's no images.');</script>";

    }
    $result['type'] = 'success';
    echo json_encode($result);
    wp_die();
}

我不知道為什么它沒有找到動作,它都是按照wp所說的那樣完成的,我希望somone可以伸出援手,謝謝。

- 編輯 -

好的,所以現在我試圖只傳遞'action': 'upload_button' ,錯誤沒有出現,但響應沒有成功,我做了這個與我的函數內部的所有代碼注釋,只是離開las 3行,在為了返回成功,但它沒有,所以它可能會找到函數,但由於某種原因它不會被執行,當然這意味着當我傳遞額外的數據時會發生錯誤,任何關於為什么會發生這種情況的想法?

對不起,我沒有得到正確的事情從函數獲得反饋,我只需刪除所有echo s並將我需要的所有內容保存到數組中並返回json編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM