判斷請求是否為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請求&JSONPJSON
- 請求OpenFeign的GET請求時,請求為何失敗?
- ajax中POST請求與引數(請求體)設定
- ajax中設定請求頭和自定義請求頭
- springmvc處理ajax請求SpringMVC
- 封裝ajax、axios請求封裝iOS
- vue2.0 axios post請求傳參問題(ajax請求)VueiOS
- 一次ajax請求導致status為canceled的原因小記求導
- ajax請求servlet返回資料Servlet
- KKB : Jquery實現Ajax請求jQuery
- 如何傳送請求以及AJAX
- Ajax請求後臺資料
- 你以為你請求的就是你想請求的嗎?
- 基於jQuery的三種AJAX請求jQuery
- ajax跨域請求之CORS的使用跨域CORS
- js ajax請求封裝及解決node請求跨域問題JS封裝跨域
- SpringMVC中如何傳送GET請求、POST請求、PUT請求、DELETE請求。SpringMVCdelete
- ajax請求下載excel檔案Excel
- jquery Ajax 請求錯誤 Unexpected tokenjQuery
- 利用fetch方法實現Ajax請求
- 基於jq封裝ajax請求封裝
- 有趣的請求引數/請求頭
- shell請求api,獲取json返回值,做判斷APIJSON
- 重複的ajax請求讓人很受傷
- ajax的post或者get伺服器請求伺服器
- JS 中的網路請求 AJAX, Fetch, WebSocketJSWeb
- 傳入http請求的UserAgent 根據它判斷是手機還是電腦傳送過來的請求HTTP
- jQuery裡如何使用ajax傳送請求jQuery
- vue中使用axios傳送ajax請求VueiOS
- Ajax+SpringMVC實現跨域請求SpringMVC跨域
- 首頁 使用axios 傳送ajax請求iOS
- JS進階系列 --- ajax請求優化JS優化
- 瀏覽器如何將你的http請求轉為https請求?瀏覽器HTTP
- React、Axios、MockJs實現Ajax的請求攔截ReactiOSMockJS