💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ علی صالحی
ارسال نشدن اطلاعات به url
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۰۸ دی ۱۴۰۲

با سلام . وقت بخیر

اطلاعات به سمت url نمیره و خطای bad request 400 را دارم :

url: "/wp-admin/admin-ajax.php",

کد‌های من به شکل زیر هست:

jQuery(document).ready(function ($) {
  $("#addProduct").on("submit", function (e) {
    e.preventDefault();
    let prName = $("#pName").val();
    let prBrand = $("#pBrand").val();
    let prModel = $("#model").val();
    let prPrice = $("#price").val();
    let prStatus = $("#status").val();
    $.ajax({
      type: "POST",
      url: "/wp-admin/admin-ajax.php",
      data: {
        action: "addProducts",
        productName: prName,
        productBrand: prBrand,
        productModel: prModel,
        productPrice: prPrice,
        productStatus: prStatus,
      },
      dataType: "json",
      success: function (response) {},
    });
  });
});
<?php
function get_products()
{
    global $wpdb;
    $tableProduct = $wpdb->prefix . 'products';
    $stmt = $wpdb->get_results("SELECT * FROM $tableProduct ");
    return $stmt;
}
function addProducts()
{
    echo "prev";
    var_dump($_POST);
    echo "/prev";
}
add_action("wp_ajax_addProducts", "addProducts");

سلام،

1. اطمینان حاصل کنید که آدرس url درست است و به فایل admin-ajax.php اشاره می‌کند.

2. nonce را اضافه کنید تا امنیت درخواست را افزایش دهید:

data: {
action: 'addProducts',
nonce: <?php echo wp_create_nonce('my_ajax_nonce'); ?>,
// other params
}

 

3. بررسی کنید که آیا تابع addProducts شما صحیح اجرا می‌شود. می‌توانید با اکشن دیگری آزمایش کنید.

4. اگر همه چیز درست باشد، ممکن است مشکل از یکی از افزونه‌ها باشد که درخواست AJAX را مسدود می‌کند. آن‌ها را غیرفعال کنید و دوباره تست کنید.

5. ضمنا خروجی رو هم بصورت جیسون برگردونید.

محسن موحد ۰۸ دی ۱۴۰۲، ۱۹:۵۹

با سلام

نکته زیر را در نظر داشته باشید:

add_action('wp_ajax_name', 'callback' ); // executed when logged in
add_action('wp_ajax_nopriv_name', 'callback' ); // executed when logged out
بهنام مرادی ۰۹ دی ۱۴۰۲، ۰۹:۰۲