Не удается прочитать данные сообщения ajax, отправленные на сервер

Вот моя проблема, может быть, глупая проблема, но я действительно не вижу, что не так.

В laravel выполняется почтовый запрос ajax, и данные отправляются на сервер (поскольку он отображается на вкладке сети браузера).

Но на стороне сервера, поскольку я запрашиваю запрос, доступ к данным невозможен (кажется, что они даже не включены в запрос).

Запрос ajax находится в другом почтовом запросе в случае успеха (если это имеет значение).

Запрос

var projectid='21';
var data = [{'project' : projectid, 'fileName' : response.fileName}];
json = JSON.stringify (data);
console.info(json);
$.ajax({
        method :'POST',
        url:'/mtdir',
        data: json,
        cache: false,
        processData:false,
        contentType: false,
        headers: {
          'X-CSRF-TOKEN': $('meta[name = "csrf-token"]').attr('content')
                  }

    });

Контроллер

public function mtdir(Request $request) {

    dd($request);

    //$ProjectID=$request->input('ProjectID');
    //$ProjectID=$_GET['ProjectID'];
    $fileName = $request->get("fileName");
    $fileName = $_REQUEST ["fileName"];

}

Я уже пытался отформатировать свои данные с помощью JSON.stringify

 data = {'project' : projectid, 'fileName' : response.fileName}

или

 data = [{'project' : projectid, 'fileName' : response.fileName}]

Если отправлено только как объект {'project': projectid, 'fileName': response.fileName}, вкладка сети браузера извлекает только [object Object].

Спасибо за помощь ! :)

Попробуйте отправить токен CSRF в теле запроса как _csrf вместо заголовка.

nakov 24.10.2018 18:39
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

попробуйте удалить

processData:false,
contentType: false,

в вашем запросе ajax. вы можете проверить, что с входными данными что-то не так, выполнив

var_dump("php://input");

Спасибо. Похоже, что processData: false, contentType: false вызывали мою проблему. Я даже не думал об их удалении, потому что обычно с этим работает. Есть идеи, почему?

AlUrvoy 24.10.2018 18:50

Обычно вы используете их при использовании formData (лучшее решение для загрузки файлов).

N69S 24.10.2018 19:04

Другие вопросы по теме