static boolean isAjax()

in plugin-core/plugin/src/main/groovy/grails/plugin/springsecurity/SpringSecurityUtils.groovy [276:314]


	static boolean isAjax(HttpServletRequest request) {

		String ajaxHeaderName = (String)ReflectionUtils.getConfigProperty('ajaxHeader')

		// check the current request's headers
		if (XML_HTTP_REQUEST == request.getHeader(ajaxHeaderName)) {
			return true
		}

		def ajaxCheckClosure = ReflectionUtils.getConfigProperty('ajaxCheckClosure')
		if (ajaxCheckClosure instanceof Closure) {
			def result = ajaxCheckClosure(request)
			if (result instanceof Boolean && result) {
				return true
			}
		}

		// look for an ajax=true parameter
		if ('true' == request.getParameter('ajax')) {
			return true
		}

		// process multipart requests
		MultipartHttpServletRequest multipart = (MultipartHttpServletRequest)request.getAttribute(MULTIPART_HTTP_SERVLET_REQUEST_KEY)
		if ('true' == multipart?.getParameter('ajax')) {
			return true
		}

		// check the SavedRequest's headers
		HttpSession httpSession = request.getSession(false)
		if (httpSession) {
			SavedRequest savedRequest = (SavedRequest)httpSession.getAttribute(SAVED_REQUEST)
			if (savedRequest) {
				return savedRequest.getHeaderValues(ajaxHeaderName).contains(MULTIPART_HTTP_SERVLET_REQUEST_KEY)
			}
		}

		false
	}