ajax代码

ajax代码问题

首先,要实现ajax技术,必须引用js代码,直接写入页面或引用外部js文件,但无论如何都可以被程序员看到(通过使用firbug或其他网页制作的调试工具即可)。
引用js的样式可以有很多种,都需要有《script》标签,只要找到页面内的这种标签,打开里面的src属性值(url地址,如是相对路径需要补全)即可看到代码,下面列举下其中几种引用的样式:
1、使用《script》标签
《script src=“js文件的绝对地址或相对地址,或输出js代码的页面也可以“ language=“javascript“》《/script》
2、通过一小段的js代码,动态加载更多的js文件
var otherJS = ’diaoyong.js’;//js的地址,请自定义
document.write(’《scr’ + ’ipt type=“text/javascript“ src=“’+otherJS+’“》《/scr’ + ’ipt》’);
3、使用伪代码(有些浏览器无效且很难达到)
《a href=“javascript:alert(’使用了伪代码’);“》伪代码《/a》
css中也可以使用伪代码
另外:ajax技术,是由JavaScript( 简称js )、xml、css、dom等多项结合使用来表现的,进一步了解ajax,请百度百科“ajax”
另外,js代码一般可以通过代码压缩和变量、函数名的混淆来增加阅读难度,但程序本身的安全性才是最重要的(预防注入攻击、cookie劫持等)

ajax代码意思

xmlhttp.onreadystatechange=function() //xmlhttp发送以后会有一个状态,当状态改变的时候,就执行这个匿名函数
{
if (xmlhttp.readyState==4 && xmlhttp.status==200) //这里判断xmlhttp的状态是不是为4,并且后台处理是否是200状态码,也就是处理成功状态.如果是,则执行下面的赋值.
{
document.getElementById(“txtHint“).innerHTML=xmlhttp.responseText; }
}
xmlhttp.open(“GET“,“/ajax/getcustomer.asp?q=“+str,true); //这里是打开一个链接,标识使用异步操作.
xmlhttp.send(null); //只有使用了send操作.才会向服务端发送ajax操作

Ajax叠加(Ajax返回数据用Ajax发出)示例代码

最近在做人事管理系统的一个签到功能,首先是把部门当做参数,把参数用Ajax发送到数据库进行查询,然后以表格形式动态生成员工信息到返回页面的Div里,表格最后的一列是签到按钮,这时我想用JQuery继续获取被点击的“签到”按钮,然后用Ajax将数据发送到数据库签到表,更新签到表,于是我就把每个签到按钮的id属性设置成第一次Ajax返回的每个员工信息的工号,再次用JQuery获取,怎么获取呢?想到了标签加事件选择器,于是写了下面代码:
复制代码
代码如下:
$(function(){
$(“tr
input:button“).click(){
$.ajax({
type:
“POST“,
url:
“page_helper.ashx“,
data:
“name=K&pid“
+
$(this).attr(“id“),
success:
function
(html)
{
$(“#ReturnHTML“).html(html);
},
error:
function
()
{
alert(“服务器繁忙,请稍后再试!“);
}
});
}
});
可是后来点击却发现没有获取到点击事件,点击按钮根本就没有反应,当我用浏览器查看返回的源码的时候,发现原来Ajax返回的HTML代码根本就没有被添加到页面中,这回怎么办呢?后来去百度里检索了半天,都说Ajax返回的数据无法用浏览器查看到源码,因为是异步的,检索了一天,头又大又疼,于是就晚上了,每次遇到大的问题,就赶紧睡觉,在梦中想实现方法,这样一方面可以休息,另一方面也可以解决问题,一般的时候第二天问题都会有答案,也都能实现。
第二天早晨醒来,思路还是没有,我想这次应该是大问题了,是不是我想要实现的不可能实现呢?百度里几乎没有用两次Ajax请求的,无奈之下在QQ空间发布了悬赏求助,悬赏是宴请三天三夜,后来终于我伟大的高中同学给了我帮助,当然不是因为悬赏才帮助我的,哈哈哈。
高中同学是这么说的,Jquery中有个live方法,可以获取动态生成的HTML代码元素,后来我就把live方法敲了进去,看了有三个参数event,data,function;于是查看了Jquery的帮助文档。
event:必需,规定附加到元素的一个或多个事件,由空格分隔多个事件。必须是有效的事件。
data:可选,规定传递到该函数的额外数据。
function:必需,规定当前事件发生时运行的函数。
这时的我这时大旱逢甘霖啊,于是写下下面代码:
复制代码
代码如下:
$(function(){
$(“tr
input:button“).live(“click“,
function
()
{
$.ajax({
type:
“POST“,
url:
“page_helper.ashx“,
data:
“name=JS&pid=“
+
$(this).attr(“id“)
+
jsparam(),
success:
function
(html)
{
alert(html);
},
error:
function
()
{
alert(“服务器繁忙,请稍后再试!“);
});
}
});
这次奇迹出现了,Ajax返回的按钮单击事件被获取到了,下面的Ajax异步过程也调用成功了,那种喜悦不能言表。
如果我放弃了这次求助,以后遇到同样的问题,我可能换一种思路,会用a标签代替按钮,跳转到另一界面,操作起来太麻烦了,哪个用户见到这样的效果都会恶心至极,同学这样的帮助岂三天三夜的宴请足矣?

求一个简单的ajax代码 来判断跨域是否成功

1、使用jquery的ajax方法向服务器发送请求的时候,可使用error函数进行错误信息的处理,
一般error函数返回的参数有三个: function(jqXHR jqXHR, String textStatus, String errorThrown):如
$.ajax({
url: ’url’,
success: function (data) {
alert(data);
},
error: function (jqXHR, textStatus, errorThrown) { /*jqXHR对象的信息*/
console.log(’jqXHR.responseText –》 ’,jqXHR.responseText);
console.log(’jqXHR.status –》 ’,jqXHR.status);
console.log(’jqXHR.readyState –》 ’,jqXHR.readyState);
console.log(’jqXHR.statusText –》 ’,jqXHR.statusText); /*其他两个参数的信息*/
console.log(’textStatus –》 ’,textStatus);
console.log(’errorThrown –》 ’,errorThrown);
}
});
可以通过返回状态值判断是否请求成功
2、现在各浏览器都有开发者工具(大多数F12调用),看network请求

这段ajax代码里面的这段是什么意思

net.AjaxRequest.prototype.loadDate=function(url,method,params){ // 封装方法loadDate
//===================================
//这段用来创建XMLHttp对象
if (window.XMLHttpRequest){
if (!method){
method=“GET“;
}
if (window.XMLHttpRequest){
this.req=new XMLHttpRequest();
} else if (window.ActiveXObject){
this.req=new ActiveXObject(“Microsoft.XMLHTTP“);
}
//===================================
// 这段操作XMLHttp对象发送Ajax请求,可参考XMLHttp使用文档
if (this.req){// 判断XMLHttp对象是否已生成
try{
var loader=this; // this 就是此函数本身,用loader是为了在下面的call中调用
this.req.onreadystatechange=function(){
net.AjaxRequest.onReadyState.call(loader); // 这里不能用this,因为在此this表示上层function
}
this.req.open(method,url,true);
//this.req.send(params);
this.req.send(null);
}catch (err){
this.onerror.call(this);
}
}
//===================================
}

解释AJAX代码

首先你这是使用jquery的对后台调用的ajax
type:“GET”,表示该ajax的向服务器的请求方式为“GET”,还有一种方式为“POST”,默认为“GET”, 对于“GET”与“POST”的区别,可以自行百度
url: “ajax.aspx“,(默认: 当前页地址) 发送请求的地址。
对于data: “mod=GetOnlineUserList&v=“+new Date(),
success: function(msg) {
$(“#DivUserList“).html(msg);
}
data:表示发送到服务器的数据,“mod=GetOnlineUserList&v=“+new Date()则表示想服务器传的参数“mod”与“v”,参数“mod”的值为“GetOnlineUserList”,而参数“v”的值为当前日期(new Date()在js中声明当前日期的代码),success: function(msg)表示向服务器提交请求成功后返回的操作,“msg”则为成功返回的数据,$(“#DivUserList“).html(msg)表示用jquery选择器选择id为“DivUserList”的html的DOM元素,将成功返回的“msg”赋值给该元素
关于更多的juqery的ajax资料,,可以产看jquery的api文档,,其中有很详细的讲解

ajax返回代码200,304分别代表什么意思

AJAX状态码说明

  • 1**:请求收到,继续处理

  • 2**:操作成功收到,分析、接受

  • 3**:完成此请求必须进一步处理

  • 4**:请求包含一个错误语法或不能完成

  • 5**:服务器执行一个完全有效请求失败

  • 100——客户必须继续发出请求

  • 101——客户要求服务器根据请求转换HTTP协议版本

  • 200——交易成功

  • 201——提示知道新文件的URL

  • 202——接受和处理、但处理未完成

  • 203——返回信息不确定或不完整

  • 204——请求收到,但返回信息为空

  • 205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件

  • 206——服务器已经完成了部分用户的GET请求

  • 300——请求的资源可在多处得到

  • 301——删除请求数据

  • 302——在其他地址发现了请求数据

  • 303——建议客户访问其他URL或访问方式

  • 304——客户端已经执行了GET,但文件未变化

  • 305——请求的资源必须从服务器指定的地址得到

  • 306——前一版本HTTP中使用的代码,现行版本中不再使用

  • 307——申明请求的资源临时性删除

  • 400——错误请求,如语法错误

  • 401——请求授权失败

  • 402——保留有效ChargeTo头响应

  • 403——请求不允许

  • 404——没有发现文件、查询或URl

  • 405——用户在Request-Line字段定义的方法不允许

  • 406——根据用户发送的Accept拖,请求资源不可访问

  • 407——类似401,用户必须首先在代理服务器上得到授权

  • 408——客户端没有在用户指定的饿时间内完成请求

  • 409——对当前资源状态,请求不能完成

  • 410——服务器上不再有此资源且无进一步的参考地址

  • 411——服务器拒绝用户定义的Content-Length属性请求

  • 412——一个或多个请求头字段在当前请求中错误

  • 413——请求的资源大于服务器允许的大小

  • 414——请求的资源URL长于服务器允许的长度

  • 415——请求资源不支持请求项目格式

  • 416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段

  • 417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求

  • 500——服务器产生内部错误

  • 501——服务器不支持请求的函数

  • 502——服务器暂时不可用,有时是为了防止发生系统过载

  • 503——服务器过载或暂停维修

  • 504——关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长

  • 505——服务器不支持或拒绝支请求头中指定的HTTP版本

ajax代码重复,怎么封装

/* ajax Post请求
* 服务器返回数据格式约定为 {success:true/false,message:’消息内容’,data:’自定义数据’}
*/
function ajax (url, datas, cb) {
$.ajax({
type: “post“,
async: true,
url: url,
data: datas,
success: function (result, textStatus, jqXHR) {
if (typeof result == “string“)
result = JSON.parse(result);
if (result && result.result) {
result = result.result;
}else {
cb(result, textStatus, jqXHR);
}
},
error: function () {
/*如果请求失败,可以统一在这里处理*/
}
});
}
这样就封装了一个ajax 以post 请求的方法。调用:
ajax(“/submit“,{id:1,name:“2“,sex:“1“,fullname:“lisan“},function(result){ /*这里执行你请求成功后的逻辑*/ })

写出使用javaScript实现Ajax的原生代码

《script type=“text/javascript“》
// 封装创建XMLHttpRequest对象
function createXMLHTTPObject() {
var XMLHttpFactories = [
function () { return new XMLHttpRequest() },
function () { return new ActiveXObject(“Msxml2.XMLHTTP“) },
function () { return new ActiveXObject(“Msxml3.XMLHTTP“) },
function () { return new ActiveXObject(“Microsoft.XMLHTTP“) },
];
var xmlhttp = false;
for (var i = 0; i 《 XMLHttpFactories.length; i++) {
try {
xmlhttp = XMLHttpFactories[i]();
}
catch (e) {
continue;
}
break;
}
return xmlhttp;
}
//封装异步请求函数
function request(url, callback, data) {
var xmlHttp = createXMLHTTPObject();
if (!xmlHttp) return;
var method = (data) ? “POST“ : “GET“;
xmlHttp.open(method, url, true);
xmlHttp.setRequestHeader(’User-Agent’, ’XMLHTTP/1.0’);
if (data)
xmlHttp.setRequestHeader(’Content-type’, ’application/x-www-form-urlencoded’);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState != 4) return;
if (xmlHttp.status != 200 && xmlHttp.status != 304) {
alert(’HTTP请求错误 ’ + xmlHttp.status);
return;
}
callback(xmlHttp);
}
if (xmlHttp.readyState == 4) return;
xmlHttp.send(data);
}
《/script》
《script type=“text/javascript“》
//定义请求地址
var mi = document.domain
var url = “http://ip-api.com/json/?lang=zh-CN“;
//定义回调函数,参数为XMLHttpRequest对象
var callback = function (xmlHttp) {
var info = xmlHttp.responseText;
var o = eval(“(“ + info + “)“);
$(“#michen“).html(“通过接口动态查询IP“ + JSON.stringify(o));
//alert(info);
// alert(o.name);
}
//调用请求函数
request(url, callback);
function cityname_onclick() {
}
《/script》