Can't pass data via AJAX to Laravel

151
13 октября 2019, 09:40

Пытаюсь передать переменные через Ajax в Laravel 5.1

Ajax:

$.ajaxSetup({
    headers: {
        'Content-Type':'application/json',
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
$.ajax({
    contentType: "application/json",
    dataType: 'JSON',
    type: "post",
    url: '/orders/api/store',
    data: {
        _method: 'post',
        _token: CSRF_TOKEN,
        message: '123',
        id: 1,
    },
    success: function( response ) {
        console.log(response);
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert("Status: " + textStatus); alert("Error: " + errorThrown);
    }
});

Routes.php:

Route::post('/orders/api/store', 'OrdersController@apiStore');

И сама функция обрабочтик:

public function apiStore(Request $request) {
    $response = [
        'request' => request('message'),
        'message' => 'works',
        'status' => '200'
    ];
    return response()->json($response);
}

Результат выполнения следующий:

{request: null, message: "works", status: "200"}

При попытке считать переменную message возвращается null

Answer 1
 $response = [
    'request' => request('message'),
    'message' => 'works',
    'status' => '200'
];

Ошибка в переменной (не обозначили её) $request('message')

A лучше $request->message

Answer 2

Проблема была решена спустя 2 дня: помогло создание переменной data типа Object, заполнение ее полей нужными данными, и передача на бекенд с помочью JSON.stringify(data)

function submitOrder() {
console.log(JSON.stringify(order.positions));
console.log('SENDING ORDER ',order.positions, ' to the database');
var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
var data = {};
data.order = order.positions;
data._method = 'POST';
data._token = CSRF_TOKEN;
$.ajax({
    //FIXME No response
    // headers: {
    //     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    // },
    type: "POST",
    url: '/orders/api/store/',
    data: JSON.stringify(data),
    success: function( response ) {
        console.log(response);
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert("Status: " + textStatus); alert("Error: " + errorThrown);
    }
});}
READ ALSO
PHP Отправка письма из черновика

PHP Отправка письма из черновика

Нужно через php отправить заранее подготовленное в черновиках письмо с вложением, перед отправкой предварительно изменив Тему письма

116
dataTransform не получает значение с формы

dataTransform не получает значение с формы

Столкнулся с проблемой при использовании dataTransformerМне надо обработать получаемое значение с формы

116
Проблема с сохранением изменений в Stickies?

Проблема с сохранением изменений в Stickies?

Я пытаюсь создать инструмент для сохранения на страничке заметок И у меня есть во такой код Взял я его из этого туториала

98
Вывести денные отдельно для каждой даты

Вывести денные отдельно для каждой даты

Раньше даты и имена выводились в одной таблице, но появилась необходимость вывести денные отдельно для каждой даты

141