Я искал везде решения, и я убежден, что все делаю правильно.Laravel 5.x Ajax Сообщение из массива не работает
У меня есть список идентификаторов в массиве, который мне нужно передать в контроллер для удаления, но объект запроса всегда дает мне пустой массив, когда я делаю $request->all()
, но если я сам сброшу объект запроса, я могу см. его и связанные с ним свойства и методы.
JavaScript
var data = [id: 14, id:77, id:138]; //We will convert this to a json string
$.ajax({
type : 'POST',
url : '/orders/cancel',
data : JSON.stringify(data), //Outputs [{"id":"x"},{"id":"x"}]
headers: { 'X-CSRF-TOKEN':token },
success: function(){ //the usual },
error: function(){ //the usual }
});
Laravel Маршрут
Route::any('/orders/cancel', '[email protected]');
Контроллер
namespace My\Namespace;
use Illuminate\Http\Request;
//other irrelavant `use` statements omitted
class BackOrderedOrdersController extends Controller
{
public function cancelAction(Request $request)
{
dd($request->all()); //This just outputs '[]' : empty array
}
}
статус ответа 200 означает, все нормально, но посланных данных не достигает контроллера для некоторых причина.
Это также первый раз, когда мне пришлось работать с Ajax Post без моих данных, поступающих из формы, а также я немного неохотно отношусь к тому, является ли это проблемой.
Моя ставка по этому типу содержимого определена как application/x-www-form-urlencoded;charset=UTF-8
от FIREBUG, даже если я задал тип данных как json. Я частично осведомлен о том, что касается этого типа содержимого и кодировки, но в этом случае.
Может ли кто-то определить меня в правильном направлении относительно того, где данные пропущены? Это проблема JQuery, проблема с Laravel или что?
Вы попробовали 'Route :: post ('/ orders/cancel', 'BackOrderedOrdersController @ cancelAction');'? –