在Asp .Net Core 2.2 Razor Pages中,如果Ajax Call Post不起作用,可能是由于以下几个原因导致的:
错误的URL路径:确保Ajax请求的URL路径是正确的。可以通过在页面中使用F12开发者工具的网络选项卡来查看请求是否成功发送,并检查响应的状态码。
未正确设置CSRF防护:在Razor Pages中,默认启用了CSRF防护机制。如果你的Ajax请求中没有正确设置CSRF令牌,请求将被拒绝。可以通过在页面中添加以下代码来设置CSRF令牌:
@Html.AntiForgeryToken()
然后在Ajax请求头中添加CSRF令牌:
headers: {
RequestVerificationToken: $('input[name="__RequestVerificationToken"]').val()
}
[ValidateAntiForgeryToken]
public IActionResult OnPostAjax()
{
// 处理Ajax请求的逻辑代码
return new JsonResult("Success");
}
然后在Ajax请求中指定正确的URL路径和请求类型:
$.ajax({
url: '/YourPage/Ajax', // 替换成正确的URL路径
type: 'POST',
data: { // 请求数据 },
headers: {
RequestVerificationToken: $('input[name="__RequestVerificationToken"]').val()
},
success: function(response) {
// 请求成功后的处理逻辑
},
error: function(xhr, status, error) {
// 请求失败后的处理逻辑
}
});
如果你仍然无法解决问题,可以提供更多的代码示例和错误信息,以便更好地帮助你解决问题。