Я только что столкнулся с очень странным поведением jQuery с Laravel API-интерфейсом. Не волнуйтесь, не обычная проблема аутентификации et c. Два сценария ios
1: нет выхода с jQuery
public function index(Request $request)
{
$items = $this->repository->get();
return response()->json(["data" => $items]);
}
2: выход с jQuery
public function index(Request $request)
{
$items = $this->repository->get();
echo ".";
return response()->json(["data" => $items]);
}
jQuery Звоните:
$.ajax({
url: url,
type: 'GET',
async: false, // tested with and without
cache: false, // tested with and without
ontentType: 'application/json', // tested with and without
beforeSend: function beforeSend(xhr) {
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
},
dataType: 'text', //json
success: function success(data) {
debugger;
},
error: function error(xhr, status, _error2) {
debugger;
}
});
Интересно, что я не получаю в сценарии два только точка, я получаю все, что я тестировал со всеми различными jQuery dataTypes, accept-header и так далее. Далее я тестировал разные маршруты, все одинаково. Далее, Swagger и Postman показывают данные обоими способами, как и ожидалось. Я использую Chrome 80.0.3987 Официальный 64 бит.
Любые идеи о том, как справиться с этим?
Редактировать: Если я использую следующее, я также вижу оба результата (два раза одинаковые) , Это не может быть решением.
$items = $this->repository->get();
echo($items->toJson(JSON_PRETTY_PRINT));
return response()->json(["data" => $items]);