Razor Pages ajax post error "SyntaxError: Unexpected token < in JSON at position 0"
Razor Pages ajax post error "SyntaxError: Unexpected token < in JSON at position 0"
我正在构建一个 AspNet Core Razor Pages 网站,但我无法对服务器执行 JQuery AJAX POST 调用。
这里是服务器端代码:
public async Task<JsonResult> OnPostUpdateQRCodeAsync(int id, string name, string description)
{
...
}
这是我的 ajax 客户端代码:
function UpdateQRCodeData(id, name, description) {
var url = "?handler=UpdateQRCode";
var token = getToken();
debugger
return $.ajax({
type: "POST",
url: baseUrl + url,
headers: { "RequestVerificationToken": token },
data: {
id: id,
name: name,
description: description
},
contentType: "application/json;",
dataType: "json",
success: function (response) {
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
}
getToken() 函数从页面获取防伪令牌。
我收到的错误如下:
SyntaxError: Unexpected token < in JSON at position 0
我做错了什么?谁能帮帮我?
谢谢
这是一个工作演示:
cshtml(当使用@Html.AntiForgeryToken()
,html会有一个隐藏输入__RequestVerificationToken
):
@Html.AntiForgeryToken()
<button onclick="UpdateQRCodeData(1,'name','description')">Ajax</button>
js(处理程序 OnPostUpdateQRCodeAsync 的参数不是从正文中获取的,所以我删除了 contentType: "application/json;",
):
<script>
function UpdateQRCodeData(id, name, description) {
var url = "?handler=UpdateQRCode";
return $.ajax({
type: "POST",
url: url,
headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
data: {
id: id,
name: name,
description: description
},
//contentType: "application/json;",
dataType: "json",
success: function (response) {
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
}
</script>
cshtml.cs:
public async Task<JsonResult> OnPostUpdateQRCodeAsync(int id, string name, string description)
{
return new JsonResult(new object { });
}
结果:
我正在构建一个 AspNet Core Razor Pages 网站,但我无法对服务器执行 JQuery AJAX POST 调用。 这里是服务器端代码:
public async Task<JsonResult> OnPostUpdateQRCodeAsync(int id, string name, string description)
{
...
}
这是我的 ajax 客户端代码:
function UpdateQRCodeData(id, name, description) {
var url = "?handler=UpdateQRCode";
var token = getToken();
debugger
return $.ajax({
type: "POST",
url: baseUrl + url,
headers: { "RequestVerificationToken": token },
data: {
id: id,
name: name,
description: description
},
contentType: "application/json;",
dataType: "json",
success: function (response) {
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
}
getToken() 函数从页面获取防伪令牌。
我收到的错误如下:
SyntaxError: Unexpected token < in JSON at position 0
我做错了什么?谁能帮帮我?
谢谢
这是一个工作演示:
cshtml(当使用@Html.AntiForgeryToken()
,html会有一个隐藏输入__RequestVerificationToken
):
@Html.AntiForgeryToken()
<button onclick="UpdateQRCodeData(1,'name','description')">Ajax</button>
js(处理程序 OnPostUpdateQRCodeAsync 的参数不是从正文中获取的,所以我删除了 contentType: "application/json;",
):
<script>
function UpdateQRCodeData(id, name, description) {
var url = "?handler=UpdateQRCode";
return $.ajax({
type: "POST",
url: url,
headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
data: {
id: id,
name: name,
description: description
},
//contentType: "application/json;",
dataType: "json",
success: function (response) {
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
}
</script>
cshtml.cs:
public async Task<JsonResult> OnPostUpdateQRCodeAsync(int id, string name, string description)
{
return new JsonResult(new object { });
}
结果: