Не удается прочитать данные поста ajax, отправленные на сервер - PullRequest
0 голосов
/ 24 октября 2018

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

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

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

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

Запрос

var projectid='21';
var data = [{'project' : projectid, 'fileName' : response.fileName}];
json = JSON.stringify (data);
console.log(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].

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

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Сначала, пожалуйста, замените method в ajax на type, чтобы установить тип запроса на POST, также проверьте, что отправляемое data находится в массиве объекта, вам нужно либо отправить его как {'project' : projectid, 'fileName' : response.fileName} просто без использования stringify, а затем протестируйте данные, опубликованные на стороне сервера, независимо от того, получаются они или нет.

0 голосов
/ 24 октября 2018

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

processData:false,
contentType: false,

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

var_dump("php://input");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...