【问题标题】:Asp.net Core 3.1 MVC Ajax call to methodAsp.net Core 3.1 MVC Ajax 调用方法
【发布时间】:2021-02-06 17:27:32
【问题描述】:

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

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

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

}

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

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

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

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

【问题讨论】:

  • 您无法阻止这种情况,未经授权的操作不应暴露敏感数据,如果您希望返回不应被任何人查看的数据,请使用Authorize 装饰您的操作属性并应用适当的角色。

标签: ajax asp.net-mvc asp.net-core


【解决方案1】:

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

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

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

}

然后在你的 ajax 中使用:

type: "POST",

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

【讨论】:

    猜你喜欢
    • 2021-08-22
    • 2021-01-18
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    • 2021-07-07
    相关资源
    最近更新 更多