【发布时间】:2021-06-02 02:18:15
【问题描述】:
我在处理 ajax 请求时遇到了这个问题。此代码适用于其他页面,仅此不起作用。
我想在 "show" 页面上从控制器 ClientController - (http://.../client/35) 调用 ajax(来自不同的控制器 - CalendarController)可能是错误的 p>
Client.js
$(document).ready(function() {
$('#events-list').on('click', '.event-popup', function () {
var getEventId = $(this).data('id'); //this line is okay, return dynamic id as i want
$.ajax({
type: "GET",
url: "getEvent/" + getEventId,
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
dataType: 'json',
})
.done(function (data) {
console.log(data); //if i remove dataType: 'json' whole page will print in log instead data
})
.fail(function(data,jqXHR, textStatus, errorThrown) {
toastr.error("error");
console.log(data,jqXHR, textStatus, errorThrown);
})
});
});
来自 ajax 的错误消息
parsererror" SyntaxError: Unexpected token < in JSON at position
...
responseText: "<!DOCTYPE html><html lang="sr"><head>... - WHOLE PAGE
web.php
Route::get('/getEvent/{id}', 'CalendarController@getEventData');
日历控制器
public function getEventData($id)
{
$event = Event::findOrFail($id);
return Response::json($event);
}
我添加了如何使Controller看起来但不返回数据,这个ajax调用没有到达控制器
我认为问题出在 URL 的某个地方,或者因为我想用另一个控制器向 show 页面添加数据,但我不知道
提前致谢
编辑 Ajax 请求由于某种原因被重定向
【问题讨论】:
-
您很可能返回 HTML,但
return Response::json期望数据为 JSON。 -
返回的html页面内容是什么?您的 ajax 请求是否可能被重定向到身份验证页面?
-
@RobertRocha 我添加了如何让控制器看起来但不返回数据,这个 ajax 调用没有到达控制器,错误在控制器之前
-
@JamesClarkDeveloper 是的,我没看,错误返回主页而不是我想调用 ajax 的客户端页面
-
检查网络选项卡以查看错误所在。