簡體   English   中英

wp_ajax 返回 400 錯誤請求

[英]wp_ajax returning 400 Bad Request

早上好,

對不起,如果這已經發布過。 我發布另一個帖子的原因是其他帖子上的解決方案都沒有解決我的問題。

每當我發布到我的admin-ajax.php URL 時,我都會收到400 Bad Request響應。 多年來,我一直在努力完成這項工作。

這是代碼的 PHP 結尾:

<?php

  if (!defined('ABSPATH')) exit;

  define("PLUGIN_VERSION", '0.0.02');

  add_action('wp_enqueue_scripts', 'findajob_load_scripts');
  function findajob_load_scripts() {
      global $wp;
    $current_page = home_url(add_query_arg(array(), $wp->request));
    wp_register_style('findajob-css', plugins_url('/findajob.css', __FILE__), array(), PLUGIN_VERSION);
    wp_register_script('findajob-js', plugins_url('/findajob.js', __FILE__), array('jquery'), PLUGIN_VERSION, true);
      wp_localize_script('findajob-js', 'findjob', array('ajaxurl' => admin_url('admin-ajax.php'), 'current_page' => $current_page));
  }

  add_shortcode('findajob-form', 'findajob_shortcode');
  function findajob_shortcode($atts, $content = null) {
      global $wp;
      $current_page = home_url(add_query_arg(array(), $wp->request));
      wp_enqueue_style("findajob-css");
      wp_enqueue_script("findajob-js");
      ?>
      <form type="POST">
          <button name="Test">Click me!</button>
      </form>
      <?php
  }

  add_action("wp_ajax_findajob_admin_ajax", "findajob_admin_ajax");
  add_action("wp_ajax_nopriv_findajob_admin_ajax", "findajob_admin_ajax");
  function findajob_admin_ajax() {
      global $wpdb;
      echo "testing";
      wp_die();
  }

?>

這是JS中的ajax請求:

 $(document).ready(function($){ $('button[name="Test"]').on('click', function(e){ e.preventDefault(); $.ajax({ url: findjob.ajaxurl, type: 'POST', // contentType: 'text', data: { 'action': "send_form" }, success: function(Resp) { alert(Resp); }, error: function(a, b, c) { console.log(a, b, c); } }); }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

我希望有人能告訴我我做錯了什么。

謝謝!

ajax 調用中的動作參數必須是 Ajax 動作的名稱。

add_action("wp_ajax_findajob_admin_ajax",....

您必須將您的操作命名為:

$(document).ready(function($){
  $('button[name="Test"]').on('click', function(e){
        e.preventDefault();
        $.ajax({
            url: findjob.ajaxurl,
            type: 'POST',
            // contentType: 'text',
            data: {
                'action': "findajob_admin_ajax"
            },
            success: function(Resp) {
                alert(Resp);
            },
            error: function(a, b, c) {
                console.log(a, b, c);
            }
        });
    });
});

暫無
暫無

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

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