خالی بودن متغییر Post در پیام Ajax

- 2 هفته پیش
توسط Alimotreb آپدیت شد
alirezaMoseni ( 100 تجربه )
2 هفته پیش

سلام خسته نباشید
توی یه صفحه از سایتم میخوام که یه json رو با استفاده از ajax به سرور انتقال بدم
ajax هم با موفقیت و بدون اررور به سرور میرسه اما متغییر $_POST خالیه و هیچی توش نیست
وقتی از متد get استفاده میکنم json بدون هیچ مشکلی به سرور میرسه اما چون حجمش زیاده ارروره (Request-URI Too Long) میده
کدهای php:

<?php
    session_start();
    if ($_SESSION['user'] != 'admin') {
        header("location:login.php");
    }
    include 'connect.php';
    if (isset($_POST['mydata'])) {
        ...
    }
    var_dump($_POST);
?>

کدهای js:

$('#submit').click(function () {
    $.ajax({
        type: 'POST',
        url: "excelfaragiran.php",
        data: oJS,
        success: function (msg) {
            console.log(msg);
        }
    });
});

خیلی در موردش سرچ کردم اما به نتیجه ای نرسیدم و دیگه شما آخرین امیدم هستین :))

محمدحسن یگانه ( 1039 تجربه )
2 هفته پیش

مواردی که به ذهنم میرسه:

۱- یک خط بالاتر از ارسال درخواست ajax آبجکت oJS تون رو در کنسول لاگ کنید و از چیزی که داره ارسال میشه مطمئن بشید.
۲- یک محتوای hard code شده و خیلی ساده در data قرار بدید و ببنید بازهم $_POST خالی هست یا نه.
۳- شاید کمی عجیب باشه ولی مقدار POST رو به post تغییر بدید و مجدد امتحان کنید.
۴- تا جایی هم که مشخصه از هیچ فریم ورک php استفاده نمیکنید و کاملا pure هست. ولی اگر غیر این حالت هست توجه داشته باشید که معمولا در درخواست هایی از نوع POST یک سری مسائل اضافه تر برای امنیت بیشتر وجود داره. مثلا در لاراول همراه هر درخواست پست باید CSRF_TOKEN هم ارسال بشه و الا کلا درخواست اجرا نخواهد شد.

alirezaMoseni ( 100 تجربه )
2 هفته پیش

@mhyeganeh سلام
اول ممنون که وقت گذاشتی و راهنمایی کردی
به جز مورد 3 همه راه هارو امتحان کرده بودم و نتیجه ای نداشتن
شاید باورتون نشه اما

url: "excelfaragiran.php"

رو به

url: "excelfaragiran"

تغییر دادم درست شد :| :|
اما برخلاف تصورم متغییر post هم محدودیت داشت و اررور داد و مجبور شدم از php.ini مقدار max_input_vars رو از 1000 به 20000 تغییر بدم
سوالی که دارم اینه که این کار مشکلی ایجاد نمیکنه؟
به نظرتون از همین روش ajax استفاده کنم بهتره یا اینکه اطلاعاتم رو به صورت فایل منتقل کنم؟

Alimotreb ( 91342 تجربه )
2 هفته پیش

سلام
@alireza.moseni

احتمالا کش داشتید که اون طرف خالی برمیگردونده اطلاعات رو
خیر تفاوتی نداره
اما اصولی ادرس رو بزنید بهتره
هرچند به تنظیمات وب سرور هم مربوط هست و نحوه آدرس دهی ها
فرقی نداره
موفق باشید

برای ارسال پاسخ باید وارد سایت شوید