判斷請求是否為Ajax請求的小妙招
導讀 | 在寫後臺程式時,有時候需要知道客戶端傳送的是普通的請求,還是ajax 請求,最近在做專案的時候,有些地方需要判斷當前的請求是不是ajax。 |
概述
在寫後臺程式時,有時候需要知道客戶端傳送的是普通的請求,還是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 { ////// Determines whether the specified HTTP request is an AJAX request. ////// ////// true if the specified HTTP request is an AJAX request; otherwise, false. ////// The HTTP request. ////// The/// parameter is null (Nothing in Visual Basic).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; } } }
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2848346/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 通過http上下文判斷是否是Ajax請求HTTP
- ajax請求
- django中介軟體中判斷前端是不是ajax請求,從而判斷是否有許可權Django前端
- ajax請求 juery
- 網頁請求(Ajax)網頁
- AJAX 非同步請求非同步
- 請求OpenFeign的GET請求時,請求為何失敗?
- ajax中POST請求與引數(請求體)設定
- ajax中設定請求頭和自定義請求頭
- 跨域ajax請求,伺服器會收到請求嗎?跨域伺服器
- 原生ajax請求&JSONPJSON
- wordpress 處理 ajax 請求
- AJAX 跨源 HTTP 請求HTTP
- jquery ajax 跨域請求jQuery跨域
- 防止ajax請求重發
- 一次ajax請求導致status為canceled的原因小記求導
- iOS 同步請求 非同步請求 GET請求 POST請求iOS非同步
- ajax上傳檔案的請求
- scrapy抓取ajax請求的網頁網頁
- 封裝ajax、axios請求封裝iOS
- ajax請求servlet返回資料Servlet
- KKB : Jquery實現Ajax請求jQuery
- Ajax請求後臺資料
- 如何傳送請求以及AJAX
- ajax請求如何防止快取快取
- 原生JS封裝AJAX請求JS封裝
- ajax 請求某個檔案
- springmvc處理ajax請求SpringMVC
- 你以為你請求的就是你想請求的嗎?
- vue2.0 axios post請求傳參問題(ajax請求)VueiOS
- [JS] IE下ajax請求不生效或者請求結果不更新JS
- 原聲ajax與jquery ajax請求的區別jQuery
- js ajax請求封裝及解決node請求跨域問題JS封裝跨域
- ajax跨域請求之CORS的使用跨域CORS
- 基於jQuery的三種AJAX請求jQuery
- jquery的ajax請求servlet與響應jQueryServlet
- 一個簡單的Ajax請求例子
- SpringMVC中如何傳送GET請求、POST請求、PUT請求、DELETE請求。SpringMVCdelete