JSON SyntaxError: Unexpected token <
JSON SyntaxError: Unexpected token <
之前有人问过这个问题,但没有其他答案有效或适用于这种情况。我有 JSON 数据发送到后端,然后发送回复。
然而,它永远不会触发调用的成功函数,尽管数据通过服务器并且后端进程成功。我似乎找不到问题。
我乱七八糟的功能:
RegistrationForm.prototype.sendCode = function(url, error) {
if (accessCode){
return $.ajax({
url: url,
type: 'POST',
data: JSON.stringify({"vouchercode": accessCode}),
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function(data){
//success case here. never fires
},
error: function(xhr, ajaxOptions, err, error){
console.log(err);
console.log(accessCode);
}
});
}
错误:
SyntaxError: Unexpected token <
这是 AJAX 错误函数中 console.log(err)
的输出。
请求 return 一些无效数据 json。 “<”的存在表示 html 或 xml。如果发生内部错误,它可能是服务器默认错误页面。
您可以在大多数浏览器中检查请求 return 数据。在 chrome 中是 F12,然后是 "Network" 选项卡。
dataType
是您期望 从服务器返回的内容。你告诉 jQuery,服务器将发送 JSON,但显然它发送 HTML (<!DOCTYPE...
),因此错误。
将 dataType
设置为 html
或 text
。
错误表明响应在 html 中。因此,只需删除 dataType: 'json'
并且 jQuery 应该将其解析为 html 并且它应该可以正常工作。
否则按照下面
如果你真的用 json 回复,那么它很可能被格式化为
<pre>{json here}</pre>
因此,删除 dataType: 'json'
并在成功处理程序中进行以下更改
success: function(data){
var obj = JSON.parse($(data).text());
}
之前有人问过这个问题,但没有其他答案有效或适用于这种情况。我有 JSON 数据发送到后端,然后发送回复。
然而,它永远不会触发调用的成功函数,尽管数据通过服务器并且后端进程成功。我似乎找不到问题。
我乱七八糟的功能:
RegistrationForm.prototype.sendCode = function(url, error) {
if (accessCode){
return $.ajax({
url: url,
type: 'POST',
data: JSON.stringify({"vouchercode": accessCode}),
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function(data){
//success case here. never fires
},
error: function(xhr, ajaxOptions, err, error){
console.log(err);
console.log(accessCode);
}
});
}
错误:
SyntaxError: Unexpected token <
这是 AJAX 错误函数中 console.log(err)
的输出。
请求 return 一些无效数据 json。 “<”的存在表示 html 或 xml。如果发生内部错误,它可能是服务器默认错误页面。
您可以在大多数浏览器中检查请求 return 数据。在 chrome 中是 F12,然后是 "Network" 选项卡。
dataType
是您期望 从服务器返回的内容。你告诉 jQuery,服务器将发送 JSON,但显然它发送 HTML (<!DOCTYPE...
),因此错误。
将 dataType
设置为 html
或 text
。
错误表明响应在 html 中。因此,只需删除 dataType: 'json'
并且 jQuery 应该将其解析为 html 并且它应该可以正常工作。
否则按照下面
如果你真的用 json 回复,那么它很可能被格式化为
<pre>{json here}</pre>
因此,删除 dataType: 'json'
并在成功处理程序中进行以下更改
success: function(data){
var obj = JSON.parse($(data).text());
}