概述

在写后台程序时,有时候需要知道客户端发送的是普通的请求,还是ajax 请求,最近在做项目的时候,有些地方需要判断当前的请求是不是ajax。特地找了下发现,jQuery 发出 ajax 请求时,会在请求头部添加一个名为 X-Requested-With 的信息,信息内容为:XMLHttpRequest。Ajax请求的request headers里都会有一个key为x-requested-with,值为XMLHttpRequest的header,所以我们就可以使用这个特性进行判断。

判断是不是ajax

using System;namespace CompanyName.ProjectName.Web.Host.Framework
{public static class RequestExt{/// <summary>/// Determines whether the specified HTTP request is an AJAX request./// </summary>////// <returns>/// true if the specified HTTP request is an AJAX request; otherwise, false./// </returns>/// <param name="request">The HTTP request.</param>///  <exception cref="T:System.ArgumentNullException">///  The <paramref name="request"/>///  parameter is null (Nothing in Visual Basic).</exception>public static bool IsAjaxRequest(this Microsoft.AspNetCore.Http.HttpRequest request){if (request == null)throw new ArgumentNullException("request");if (request.Headers != null)return request.Headers["X-Requested-With"] == "XMLHttpRequest";return false;}}
}

控制ajax才能使用方法

using Microsoft.AspNetCore.Mvc.Abstractions;
using Microsoft.AspNetCore.Mvc.ActionConstraints;
using Microsoft.AspNetCore.Routing;namespace CompanyName.ProjectName.Web.Host.Framework
{public class AjaxOnlyAttribute : ActionMethodSelectorAttribute{public bool Ignore { get; set; }public AjaxOnlyAttribute(bool ignore = false){Ignore = ignore;}public override bool IsValidForRequest(RouteContext routeContext, ActionDescriptor action){if (Ignore)return true;var request = routeContext.HttpContext.Request;if (request != null && request.Headers != null && request.Headers["X-Requested-With"] == "XMLHttpRequest")return true;return false;}}
}

一日一技:ASP.NET Core 判断请求是否为Ajax请求相关推荐

  1. ASP.NET Core 中使用IHttpClientFactory发出HTTP请求

    1.HttpClient类使用存在的问题 HttpClient类的使用所存在的问题,百度搜索的文章一大堆,好多都是单纯文字描述,让人感觉不太好理解,为了更好理解HttpClient使用存在的问题,下面 ...

  2. 判断请求是否为Ajax请求的小妙招

    在写后台程序时,有时候需要知道客户端发送的是普通的请求,还是ajax 请求,最近在做项目的时候,有些地方需要判断当前的请求是不是ajax. 概述 在写后台程序时,有时候需要知道客户端发送的是普通的请求 ...

  3. 判断一个请求是否为Ajax请求

    这几天在写一个网站的登录判断拦截器,需要对请求进行拦截,在拦截器中我需要判断HttpServletRequest是否为Ajax异步请求.我们可以通过X-Requested-With="XML ...

  4. java项目如何判断一个请求是否为AJAX请求

    判断是否为ajax请求代码如下: /**** 判断一个请求是否为AJAX请求,是则返回true* @param request* @return*/public static boolean isAj ...

  5. ajax请求 拦截窗口,ajax请求成功后新开窗口window.open()被拦截解决方法

    ajax请求成功后新开窗口window.open()被拦截解决方法 问题: 前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但 ...

  6. 在 Asp.Net Core WebAPI 中防御跨站请求伪造攻击

    什么是跨站请求伪造 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或 ...

  7. 关于 x-requested-with 请求头 区分ajax请求还是普通请求

    今天做Spring MVC异常统一处理这块,在处理的时候需要区分发送过来的请求是传统请求还是ajax请求,网上有现成的代码,我是参考http://www.2cto.com/kf/201412/3643 ...

  8. x-requested-with 请求头 区分ajax请求还是普通请求

    在服务器端判断request来自Ajax请求(异步)还是传统请求(同步): 两种请求在请求的Header不同,Ajax 异步请求比传统的同步请求多了一个头参数 1.传统同步请求参数 accept  t ...

  9. x-requested-with 请求头 区分ajax请求还是普通请求

    在服务器端判断request来自Ajax请求(异步)还是传统请求(同步): 两种请求在请求的Header不同,Ajax 异步请求比传统的同步请求多了一个头参数 1.传统同步请求参数 accept  t ...

最新文章

  1. 闪回之 Flashback Data Archive
  2. commonjs是什么_JavaScript模块化标准CommonJS/AMD/CMD/UMD/ES6Module的区别
  3. Spring Boot工作笔记-RabbitMQ中Unsupported major.minor version 52.0问题
  4. Learning Modern 3D Graphics Programming笔记
  5. exchange 2010部署之一
  6. zabbix监控华为USG6000防火墙
  7. python numpy安装教程_python 环境下安装 numpy
  8. java mysql sqlhelper_Java访问MySQL数据库的SqlHelper类以及测试程序
  9. html语言乘法口诀表,0044 使用JavaScript在网页上生成九九乘法口诀表
  10. git 工作区、暂存区、版本库(本地)、远程版本库区别
  11. C语言入门 -- Simple Simon 简单的西蒙游戏(2021/1/7)
  12. 吐槽大会 之博客园两个月使用体验
  13. 点击链接跳转到微信公众号关注页、微信关注链接
  14. 企业微信第三方应用开发--回调配置
  15. ArrayList源码解读
  16. javascript案例:动态生成表格
  17. .net对Excel表数据读写操作
  18. 北京地铁规划图_测试博客撰写增加图片的办法
  19. nestjs入门(controller,service,module)
  20. 腾讯与香港大学合作开展金融科技

热门文章

  1. in the java search_elasticsearch which: no java in (/sbin:/bin:/usr/sbin:/usr/bin)
  2. group by 保留哪一条数据_使用R语言绘制一维数据统计图总结
  3. 安装SQLserver2008
  4. 整理ASP.NET MVC 5各种错误请求[401,403,404,500]的拦截及自定义页面处理实例
  5. Arduino I/O Expansion Shield V7.1
  6. Atcoder 084D - Small Multiple(最短路径+思维)
  7. webpack常用配置
  8. 中国古代历朝首都一览
  9. 学习笔记-第四周-心得体会
  10. Java中方法的继承以及父类未被子类覆盖的方法调用的问题