首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >400错误请求admin文件上传

400错误请求admin文件上传
EN

WordPress Development用户
提问于 2020-01-06 12:38:59
回答 1查看 2.2K关注 0票数 0

我在做一个上传插件时遇到了一些麻烦。我正在使用ajax进行上传,但是在第一个测试中,我得到了一个400错误的请求错误。有解决办法吗?

这是js代码

代码语言:javascript
复制
(function($){
  $(document).ready(function(){

    $('#process-upload').on('click', function(e){
      e.preventDefault();
      var data = new FormData();
      data.append('file', $('#imageFile').prop('files')[0] );
      data.append('action', 'new_message');
      data.append('message', $('#imageMessage').val());

      $.ajax({
        url: wpu.ajaxurl,
        type: 'POST',
        contentType: false,
        processData: false,
        data: data,
        success: function(response){
          console.log(response);
          window.alert('Done!');
        }
      });

    });

  });
}(jQuery));

这是php:

代码语言:javascript
复制
public function __construct()
  {
    add_shortcode( 'upload-form', array($this, 'upload_form') );
    add_action( 'wp_enqueue_scripts', array($this, 'main') );
    add_action( 'admin_ajax_new_message', array($this, 'process_upload') );
    add_action( 'admin_ajax_nopriv_new_message', array($this, 'process_upload') );
  }

  public function main()
  {
    wp_enqueue_script( 'ajax-upload', plugins_url( 'ajax-upload.min.js' , __FILE__), array('jquery'), null );
    wp_localize_script( 'ajax-upload', 'wpu', array(
        'ajaxurl' => admin_url('admin-ajax.php')
      )
    );

  }

  public function upload_form( $attr, $content = null )
  {
    ob_start();
    ?>
      
        
          
          Choose file
        
        
        
        
      
     $_FILES['imageFile']['name'],
      'type' => $_FILES['imagefile']['type'],
      'tmp_name' => $_FILES['imageFile']['tmp_name'],
      'size' => $_FILES['imageFile']['size'],
      'error' => $_FILES['imageFile']['error'],
    );

    $upload = wp_handle_upload( $file , array( 'test_form' => false ) );

    var_dump($upload);

  }
EN

回答 1

WordPress Development用户

回答已采纳

发布于 2020-01-06 13:05:51

您的操作应该是wp_ajaxwp_ajax_nopriv,而不是admin_ajax

代码语言:javascript
复制
 add_action( 'wp_ajax_new_message', array($this, 'process_upload') );
 add_action( 'wp_ajax_nopriv_new_message',array($this, 'process_upload') );
票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/355787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档