首页 > 解决方案 > Asp.net Core 3.1 MVC Ajax 调用方法

问题描述

我的控制器中有这个方法:

public async Task<string> AjaxMethod() 
{
//some codes

var jsonResults = JsonConvert.SerializeObject(results);
return jsonResults;

}

我对此方法进行了 ajax 调用,它的工作原理符合我的预期。

我意识到,当我通过 url(如 localhost:50000/Controller/AjaxMethod)访问此方法时,它会在 Web 浏览器上显示所有数据,我不想要这个。

防止此问题的最佳方法是什么?

附加信息:我正在使用 asp.net 身份,我的控制器顶部有 [AutoValidateAntiforgeryToken] 属性。

标签: ajaxasp.net-mvcasp.net-core

解决方案


您可以将您的操作更改为这样发布:

[HttpPost]
public async Task<string> AjaxMethod() 
{
//some codes

var jsonResults = JsonConvert.SerializeObject(results);
return jsonResults;

}

然后在你的 ajax 中使用:

type: "POST",

这样就无法使用 localhost:50000 / Controller / AjaxMethod 在浏览器中获取数据。


推荐阅读