架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7345|回复: 1

[资料] ASP.NET Core(十三)判断是否是 Ajax 请求

[复制链接]
发表于 2022-3-31 19:30:16 | 显示全部楼层 |阅读模式
在之前 ASP.NET MVC 中,可以使用 Request 扩展方法 IsAjaxRequest() 来判断该请求是否是 Ajax 请求。在 ASP.NET Core 中,如何判断该请求是否是 Ajax 请求还是直接通过浏览器访问 URL 直接发出的呢?

判断请求是否是 Ajax 原理,判断请求头是否包含:X-Requested-With,并且值为:XMLHttpRequest,如下图:

QQ截图20220331191832.jpg

所以,实现代码如下:

假如我们要限制控制器某些方法只能通过 Ajax 请求,可以继承 ActionMethodSelectorAttribute 特性来实现 IsValidForRequest 抽象方法,代码如下:

然后,再控制器方法添加此特性即可,如果非 Ajax 请求该方法,将直接报 404 Not found 的错误

回顾

ASP.NET Core(十二)前端 JS、CSS 捆绑和压缩
https://www.itsvse.com/thread-10282-1-1.html

ASP.NET Core(十一)端点路由添加中间件显示所有 DI 服务
https://www.itsvse.com/thread-10269-1-1.html

ASP.NET Core(十)Configuration 配置优先级详解
https://www.itsvse.com/thread-10265-1-1.html

ASP.NET Core(九) 之 Middleware 中间件详解
https://www.itsvse.com/thread-9647-1-1.html

ASP.NET Core 中间件(Middleware)详解
https://www.itsvse.com/thread-8126-1-1.html

ASP.NET Core(八) 之 Swagger UI 默认参数的坑
https://www.itsvse.com/thread-9640-1-1.html

ASP.NET Core(七)深入刨析框架源码
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core(六)DI 手动获取注入对象的方法
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core(五)基于 CAP 分布式事务
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(四)之过滤器统一 ModelState 模型验证
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core(三)使用 ActivatorUtilities 动态创建实例
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core(二)通过代码自重启应用
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core(一)使用 Redis 缓存
https://www.itsvse.com/thread-9393-1-1.html
(完)





上一篇:【实战】.NET 6 Random 生成随机数测试
下一篇:Yandex 搜索引擎 robots.txt Clean-param 配置
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-4-2 09:16:44 | 显示全部楼层
学习学习
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-23 19:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表