转自: http://holdbelief.javaeye.com/blog/528114
在服务器端判断request来自Ajax请求(异步)还是传统请求(同步):
两种请求在请求的Header不同,Ajax 异步请求比传统的同步请求多了一个头参数
1、传统同步请求参数
accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
accept-charset gb2312,utf-8;q=0.7,*;q=0.7
accept-encoding gzip,deflate
accept-language zh-cn,zh;q=0.5
cache-control max-age=0
connection keep-alive
cookie JSESSIONID=1A3BED3F593EA9747C9FDA16D309AF6B
host 192.168.101.72:8080
keep-alive 300
referer http://192.168.101.72:8080/htfsweb/spring_security_login
user-agent Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)
2、Ajax 异步请求方式
accept */*
accept-language zh-cn
referer http://192.168.101.72:8080/scm/?token=3b194bff23bf6acecea5661ac8e14c51
x-requested-with XMLHttpRequest
content-type application/x-www-form-urlencoded,text/javascript
accept-encoding gzip, deflate
user-agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; QQDownload 598; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; CIBA; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1)
host 192.168.101.72:8080
content-length 233
connection Keep-Alive
cache-control no-cache
cookie CSS=undefined; JSESSIONID=1B9AC25036290F7FB6823CCE1A24E541
可以看到 Ajax 请求多了个 x-requested-with ,可以利用它,request.getHeader("x-requested-with"); 为 null,则为传统同步请求,为 XMLHttpRequest,则为 Ajax 异步请求。
相关推荐
因此,区分一个请求是通过Ajax发起的还是传统的同步请求对于服务器端处理逻辑来说至关重要。 #### 核心知识点: 1. **HTTP请求头的差异**:Ajax请求和传统的HTTP请求在头部信息上存在显著区别。这为服务器端提供了...
在EXTJS库中,`Ext.Ajax.request`是用于发送Ajax请求的核心方法,它支持异步和同步操作。本文将详细解析如何利用`Ext.Ajax.request`实现同步请求,并探讨其背后的原理和注意事项。 首先,我们需要理解Ajax的本质,...
**Ajax异步请求小结** Ajax(Asynchronous JavaScript and XML)是一种用于创建快速、动态网页的技术,它允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。这种技术极大地提升了用户体验,...
综上所述,"Java通过jQuery实现ajax异步请求"的示例工程涵盖了客户端与服务器端的交互流程,包括使用jQuery发起AJAX请求、Java后端处理请求并返回数据,以及数据格式的转换和错误处理。了解并掌握这些知识点,对于...
同步 AJAX 请求会在发起请求后阻塞主线程,直到服务器响应返回。这种方式虽然简单直观,但在实际使用中可能会导致用户体验不佳(如页面假死),因此并不推荐在生产环境中频繁使用。 #### 三、ExtJS 3.0 同步 AJAX ...
6. **服务器端问题**:有时问题可能出在服务器端,如响应时间过长,或者返回的数据格式不正确,这也会导致看起来像是同步问题。 7. **性能优化**:如果发现大量同步请求导致页面卡顿,考虑优化请求,例如合并请求、...
异步请求的核心在于,浏览器不会阻塞其他任务,而是创建一个新的请求并在后台处理。当服务器返回响应时,JavaScript会接收到数据并进行相应的操作,而不是像同步请求那样更新整个页面。 2. **Ajax基本结构** Ajax...
在本项目中,Servlet接收来自jQuery AJAX请求的数据,并返回JSON响应。一个简单的Servlet示例: ```java import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter...
在EXTJS框架中,`Ext.Ajax.request`是进行异步AJAX通信的核心方法,它提供了与服务器端交互的能力,支持GET、POST等多种HTTP请求方式。这篇文章将深入探讨`Ext.Ajax.request`的使用,以及在实际应用中可能遇到的小...
在ExtJS中,Ajax支持是核心功能之一,它使得在浏览器端与服务器进行异步通信成为可能,无需刷新整个页面。以下是对Ajax支持的详细说明: 1. **Ajax基础**: - Ext.Ajax是ExtJS中的核心模块,用于处理所有与Ajax...
Unigui提供了内置的Ajax支持,允许开发者创建Ajax请求并在后台处理数据,然后将结果返回到客户端。这主要通过Unigui的TUniAjaxComponent组件实现,该组件允许你定义一个HTTP方法(如GET或POST),指定URL,并处理...
3. **服务器端处理**:在ASP中,通常使用VBScript或JScript编写服务器端代码。当Ajax请求到达服务器时,这些脚本会被执行,并返回所需的数据。 4. **请求类型(HTTP方法)**:常见的有GET和POST。GET用于获取信息,...
根据提供的文件信息,我们可以归纳出两个主要的知识点...通过这些示例代码,我们不仅了解了如何在客户端进行表单验证,还学会了如何构建 AJAX 请求并处理服务器端的响应。这对于前端开发者来说是非常实用且重要的技能。
因此,在实际开发中,应当谨慎使用同步请求,尽可能使用异步请求以提高页面的响应性和用户体验。 在实际开发过程中,如果遇到类似问题,开发者应该首先检查发送的参数格式是否正确,并确保请求头设置正确。如果问题...
该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。 XMLHttpRequest是XMLHTTP组件的对象,通过这...
`Ajax.Request`用于发起异步请求,接收URL和一个选项对象作为参数,选项中可定义onSuccess、onFailure等事件处理。`Ajax.Updater`则用于更新页面的一部分内容。 6. **Scriptaculous**:Scriptaculous是基于...
在 Ajax 中,“异步”与“同步”是两个重要的概念,它们定义了浏览器与服务器之间数据交换的方式。 - **异步**:在异步模式下,浏览器可以在等待服务器响应的同时继续处理其他任务。这意味着用户可以继续与网页交互...
为了响应前端的Ajax请求,您需要在服务器端编写相应的处理逻辑。这里假设您使用Java Servlet来实现: 1. **创建Servlet类**: ```java import javax.servlet.*; import javax.servlet.http.*; import java.io....
需要注意的是,虽然同步Ajax请求在本示例中被使用,但在实际项目中通常推荐使用异步请求,以避免阻塞用户界面。此外,还应考虑安全性问题,例如对输入数据进行验证和清理,以防止SQL注入等攻击。
- **跨域问题**:Ajax请求受到同源策略限制,若需跨域,需配置服务器端的CORS策略。 通过以上内容,我们可以了解到Ajax的基本原理和Prototype JS库在实现Ajax请求时的便利性。在实际开发中,利用这些知识可以构建出...