最近了解了一下JS中AJAX的应用,总结一下,以备今后不时之需。
一. 创建XHR对象:
/**
* 创建XMLHttpRequest对象
**/
function createXmlHttpRequest(){
var xmlhttp = null;
try{
xmlhttp = new XMLHttpRequest();
}catch(e){
//IE7.0一下版本浏览器以ActiveX组件方式创建XMLHttpRequest对象
var MSXML = ['MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
for(var i=0; i<MSXML.length; i++){
try{
xmlhttp = new ActiveXObject(MSXML[i]);
break;
}catch(e){}
}
}
return xmlhttp;
}
二. 以GET方式发送数据
/**
* 利用ajax校验用户名的重复性
* get方式
**/
function checkUserByAjaxGet(){
var groupName = $("GroupName");
//创建XHR对象
var xhr = createXmlHttpRequest();
//设置一个针对readystatechange事件的监听函数
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200 || xhr.status == 304){
if(xhr.responseText == '1'){
var msg = '已存在此用户组,请修改';
}else{
var msg = '此用户组可用';
}
var span = document.createElement("span");
span.innerHTML = "<font color='red'>" + msg + "</font>";
groupName.parentNode.appendChild(span);
}
}
}
//GET方式提交
xhr.open('GET', '/groups/checkUser?name='+groupName.value, true);
xhr.send(null);
}
三. 以POST方式发送数据
/**
* 利用ajax校验用户名的重复性
* post方式
**/
function checkUserByAjaxGet(){
var groupName = $("GroupName");
//创建XHR对象
var xhr = createXmlHttpRequest();
//设置一个针对readystatechange事件的监听函数
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200 || xhr.status == 304){
if(xhr.responseText == '1'){
var msg = '已存在此用户组,请修改';
}else{
var msg = '此用户组可用';
}
var span = document.createElement("span");
span.innerHTML = "<font color='red'>" + msg + "</font>";
groupName.parentNode.appendChild(span);
}
}
}
//准备一个post连接(post方式提交)
xhr.open('post', '/groups/checkUser', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
//发起请求
xhr.send('name='+groupName.value);
}
四. 返回XML格式数据信息
/**
* 利用ajax校验用户名的重复性
* 返回xml格式解析
**/
function checkUserByAjaxXml(){
var groupName = $("GroupName");
var xhr = createXmlHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200 || xhr.status == 304){
var ret = xhr.responseXML;
var flag = ret.getElementsByTagName('flag')[0].firstChild.nodeValue;
var msg = ret.getElementsByTagName('msg')[0];
$("tip").innerHTML = "<font color='red'>"+msg.firstChild.nodeValue+"</font>";
if(flag != 0){
groupName.value = '';
groupName.focus();
}
}
}
}
xhr.open('GET', '/groups/checkUserXml?name='+groupName.value, true);
xhr.send(null);
}
对应目标处理端:
header("Content-Type:text/xml; charset=utf-8");
$xml = '<?xml version="1.0" encoding="utf-8" ?>';
$xml .= '<result>';
$xml .= '<flag>'.$flag.'</flag>';
$xml .= '<msg>'.$msg.'</msg>';
$xml .= '</result>';
echo $xml;exit;
FireBug前端捕获:
五. 返回 JSON 格式数据信息:
/**
* 利用ajax校验用户名的重复性
* 返回Json格式解析
**/
function checkUserByAjaxJson(){
var groupName = $("GroupName");
var xhr = createXmlHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200 || xhr.status == 304){
//var ret = eval('('+xhr.responseText+')');
var ret = JSON.parse(xhr.responseText);
$("tip").innerHTML = "<font color='red'>"+ret.msg+"</font>";
if(ret.flag != 0){
groupName.value = '';
groupName.focus();
}
}
}
}
xhr.open('GET', '/groups/checkUserJson?name='+groupName.value, true);
xhr.send(null);
}
对应目标处理端:
header("Content-Type:text/json; charset=utf-8");
$json = json_encode(array('flag'=>$flag, 'msg'=>$msg));
echo $json;exit;
FireBug前端捕获:
- 大小: 19 KB
- 大小: 5.5 KB
分享到:
相关推荐
在"AJAX简单应用"这个例子中,我们可以探讨以下几个关键知识点: 1. **XMLHttpRequest对象**:AJAX的核心是XMLHttpRequest(XHR)对象,它是JavaScript内置的对象,负责在后台与服务器进行通信。通过创建...
在"asp中AJAX简单应用.rar"这个压缩包中,我们很显然会看到一个关于如何在ASP环境中集成和使用AJAX的实例。动态读TEXTBOX类容与后台数据比较,这表明该示例可能涉及以下几个知识点: 1. **JavaScript基础**:首先,...
在这个"asp.net ajax简单应用实例"中,我们将探讨如何利用ASP.NET AJAX实现一个功能:当用户在下拉框中选择不同的选项时,页面上的某个Label控件的值会相应改变,而无需整个页面重新加载。 首先,`Default.aspx`是...
总的来说,"简单的Ajax应用"涵盖了Web开发中的重要一环,即如何利用Ajax技术实现无刷新的页面更新,提高用户交互体验。通过理解并掌握这些知识点,开发者可以构建出更高效、更友好的Web应用程序。
首先,我们来看标题“java ajax简单应用”。这个主题主要涉及两个核心技术:Java Servlet和Ajax。Java Servlet是Java平台上的服务器端组件,用于扩展Web服务器的功能,处理HTTP请求。而Ajax则是在客户端进行的,它...
在“Ajax简单应用实力”这个主题中,我们可以探讨以下几个关键知识点: 1. **XMLHttpRequest对象**:Ajax的核心是XMLHttpRequest(XHR)对象,它允许JavaScript在后台与服务器进行通信。创建一个XHR对象,然后通过...
标题 "AJAX简单应用(附加代码!)" 暗示我们将探讨如何使用AJAX进行简单的交互式网页开发。这个主题通常会涵盖以下几个关键知识点: 1. **创建XMLHttpRequest对象**:这是AJAX的核心,JavaScript通过创建这个对象来...
**AJAX(Asynchronous JavaScript and XML)*...综上所述,AJAX简单易用模式主要涉及异步通信、数据格式、跨域策略、库的封装和现代编程范式。理解并熟练运用这些知识点,可以帮助开发者构建更加互动和高效的网页应用。
1. **防止跨站请求伪造(CSRF)**:在实际应用中,需要添加CSRF令牌来防止恶意请求。 2. **错误处理**:考虑请求失败的情况,添加适当的错误处理机制。 3. **性能优化**:减少不必要的请求,比如使用缓存或在前端...
在这个“很典型的ajax应用”中,我们将深入探讨如何实现一个输入关键字动态显示列表的简单实例,以及如何将Ajax技术应用于Java后端。 首先,让我们从用户界面(UI)开始。在这个实例中,用户会有一个输入框用于输入...
在Web开发中,PHP和AJAX(Asynchronous JavaScript and XML)是两种常用的技术,它们结合使用可以实现无刷新的数据交互,提升用户体验。本实例将详细讲解如何利用PHP和AJAX进行简单但实用的数据交换。 首先,PHP是...
在本示例中,我们将深入探讨如何使用Ajax实现简单的应用,以帮助你快速掌握其核心概念和用法。 首先,Ajax的核心在于创建一个XMLHttpRequest对象,这是浏览器内置的对象,允许我们与服务器进行异步通信。在...
**Ajax(Asynchronous JavaScript and XML)**是一种在无需重新加载整个网页的情况下,...以上就是Ajax在ASP.NET 2.0中的简单应用。通过Ajax,我们可以创建更加流畅、高效的用户体验,提高Web应用程序的性能和响应性。
AJAX(Asynchronous JavaScript ...在实际开发中,还可以结合使用ASP.NET MVC或ASP.NET Core中的AJAX扩展,以及各种前端框架(如React, Angular, Vue.js)提供的AJAX库,如axios或fetch,来进一步优化和增强AJAX功能。
AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,广泛应用于Web开发中,以提升用户体验。 **描述解读:** 描述中提到,作者在寻找现成的AJAX类时觉得使用...
在现代Web应用中,通常使用jQuery、axios或fetch API等库来简化Ajax请求的编写。在这个Demo中,我们假设前端使用jQuery的$.ajax()方法发送请求。 ```javascript // 前端jQuery示例 $.ajax({ url: '/api/data', ...
总的来说,AJAX在现代Web开发中扮演着重要角色,通过它,开发者能够构建更加高效、流畅的用户体验,同时也要注意其局限性和优化策略,以确保应用的可访问性和性能。随着技术的不断发展,AJAX也在持续进化,适应着日...
在实际应用中,JSON(JavaScript Object Notation)通常作为数据交换格式,因其轻量级和易读性而广受欢迎。在Ajax请求中,可以通过JSON.stringify()将JavaScript对象转换为JSON字符串发送给服务器,服务器处理后返回...
在提供的“AJAX框架DWR简单应用.pdf”文件中,你可能会找到关于如何设置DWR环境、编写Java接口、配置DWR配置文件、在前端JavaScript中使用DWR,以及示例代码和实际运行效果的详细教程。这个文件是学习和理解DWR工作...
JavaScript(JS)、Ajax(异步JavaScript和XML)和层叠样式表(CSS)是Web开发中的核心技术,它们共同构建了动态、交互性和视觉吸引力强的网页应用。这个压缩包包含了这些技术的中文帮助文档和示例,对于学习和理解...