ajax请求的简单介绍

http://www.itjxue.com  2023-01-07 22:18  来源:未知  点击次数: 

jquery ajax 请求status==0.该怎么调试

应该不是啥写错的一些低级错误,因为同样的代码结构我前面的都可以正常请求,这一个突然就不行了。请解说一下。

$.ajax({

url: getRootPath() + '/merchant/shop!toEdit',

type : 'Post',

cache : false,

dataType : 'html',

data:{

},

success : function(d) {

alert(d);

},

error : function(XMLHttpRequest, textStatus, errorThrown) {

alert(XMLHttpRequest.responseText);

alert(XMLHttpRequest.readyState);

alert(textStatus);

}

public String toEdit() throws Exception{

merchant = (Merchant)getSession().getAttribute("merchant");

shop = shopService.queryByMerchant(merchant.getId());

return "toEdit";

}

action name="shop" class="com.baidu.web.merchant.action.ShopAction"

result name="toEdit"/WEB-INF/pages/editShop.jsp/result

/action

ajax struts2 error status?==?0

[解决办法]

浏览器直接访问getRootPath() + '/merchant/shop!toEdit'

这个地址有输出吗,同时用chrome开发工具看发送xhr返回了什么内容

前端ajax请求常见的状态码以及产生的原因

注:以下状态码大部分都是自己项目中遇到的,现记录方便日后查看。

通常前后端使用ajax交互时,客户端向服务器发送请求时,然后服务器向我们返回状态码。 状态码就是告诉我们服务器响应的状态 ,由3位数字组成,其中第一位数字表示响应类别,响应类别从1到5分为五种 。

表示请求被服务器正常处理 ,最常见的就是这个

表示请求已成功处理,但是没有内容返回

也就是返回的响应报文中没有报文实体

一般用在只是客户端向服务器发送信息,而服务器不用向客户端返回什么信息的情况

永久重定向,表示请求的资源已经永久的搬到了其他位置 ,资源已经被分配了新的URI

临时重定向,表示请求的资源临时搬到了其他位置 ,请求的资源暂时被配到到了新的URI,和301很像,只不过资源是临时移动

表示请求资源存在另一个URI,应使用GET定向获取请求资源

303功能与302一样,区别只是303明确客户端应该使用GET访问

表示客户端自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。

304通常在IE浏览器下多次请求同一个地址出现的。

场景:删除表格其中一条数据后重新请求列表数据渲染表格,第二次请求时状态码是304导致被删除的数据还是出现在前端。

原因:IE浏览器下同一地址的ajax请求优先读取本地缓存数据

解决方法:在请求地址后面加上时间戳,保证每次请求的地址都不一样,这样浏览器就无法读取缓存。

表示请求报文存在语法错误或参数错误,服务器不理解 ,需要修改请求内容后再次发送

表示发送的请求需要有HTTP认证信息或者是认证失败了

返回401的响应必须包含一个适用于被请求资源的WWW-Authenticate首部以质询用户信息

表示对请求资源的访问被服务器拒绝了,通常是 没有权限或者跨域 。

表示服务器找不到请求的资源

表示请示方式不对,注意检查method,比如后端定义post请求方式而我们用了get,delete,put,path等方式均报错。

表示服务器执行请求的时候出错了。(后端的问题)

表示服务器超负载或正停机维护,无法处理请求

以上,如有错误欢迎指正,如果喜欢还请点个赞再走,谢谢!更多项目实战源码请移步我的 码云地址

Ajax向服务器发送请求和接收返回的信息

Ajax向服务器发送请求

Ajax对象创建完成后,下面就要讲解一下Ajax如何使用。首先详细讲解一下Ajax向服务器发送请求所需的两个方法,具体如下:

(1)open()方法

open()方法用于创建一个新的HTTP请求,并指定此请求的类型(如GET、POST等)、URL以及验证信息,其声明方式如下所示:

在上述声明中,method用于指定请求的类型,其值可为POST、GET、PUT及PROPFIND,大小写不敏感;URL表示请求的地址,可以为绝对地址也可以为相对地址,并且可以传递查询字符串。其余参数为可选参数,其中,asyncFlagy用于指定请求方式,同步请求为false,默认为异步请求true;userName用于指定用户名,password用于指定密码。

(2)send()方法

send()方法用于发送请求到HTTP服务器并接收回应。其声明方式如下所示:

在上述声明中,content用于指定要发送的数据,其值可为DOM对象的实例、输入流或字符串,一般与POST请求类型配合使用,需要注意的是,如果请求声明为同步,该方法将会等待请求完成或者超时才会返回,否则此方法将立即返回。

需要注意的是,在使用GET方式传递特殊字符或中文参数时,要使用JavaScript中的encodeURIComponent()函数将其转换成“%十六进制数”的形式,防止在某些浏览器(如IE浏览器)中中文乱码的问题。

Ajax接收服务器返回的信息

了解Ajax向服务器发送请求后,下面将对Ajax如何接收服务器返回的信息(例如,HTML标签、CSS样式、字符串、XML、JSON等),进行详细讲解。具体如下:

(1)readyState属性

readyState属性用于返回Ajax的当前状态,状态值有5种形式,具体如表所示。

(2)onreadystatechange属性

onreadystatechange事件属性用于感知readyState属性状态的改变。为了大家更好的理解这两个属性的使用,下面创建一个服务器端的文件index.php,用于输出字符串,然后在浏览器端index.html中向服务器端发送请求,并在控制台输出状态值。具体示例如下所示:

创建服务器端文件:index.php

创建浏览器端文件:index.html

在浏览器中访问客户端文件,按“F12”键,切换到控制台,查看输出结果,具体如下图所示。

从图中可以看出,通过onreadystatechange事件属性可以清晰的感知Ajax状态的改变,同时使用readyState获取转变后的状态值。例如Ajax从0(未初始化)状态变成1(初始化)状态值时,Ajax此时的状态值为1。

(3)status属性

status属性用于返回当前请求的HTTP状态码,常见的状态码如表所示。

值得一提的是,在感知当前Ajax对象状态时,为了追求程序的严谨性,需要同时判断当前HTTP状态status是否等于200(请求成功)。

需要注意的是,Ajax中的statusText属性,仅当数据发送并接收完毕后,才可以获取当前请求的响应状态。

(4)获取响应信息的相关属性

当数据接收完毕且请求服务器的请求成功时,即可以使用Ajax中提供的相关属性获取服务器的响应信息。具体的属性及相关说明如下表所示。

在上表中,responseText属性用于返回文本格式的响应数据;属性responseBody表示直接从服务器返回并未经解码的二进制数据;responseXML属性用于接收XML数据格式的响应数据。

Ajax 交互

1、AJAX请求时有三个参数,一个是请求的地址,一个是请求成功时候的回调函数,一个是请求失败的回调函数

2、消除缓存带来的影响就让请求的地址发生改变

Ajax('aaa.txt?t='+new Date().getTime(), fnsucess, fnfailed)

3、Ajax交互过程

(1)、创建Ajax对象 //只兼容非IE6:var oAjax new XMLHttpRequest();

IE6:var oAjax=new ActiveXobject("Microsoft.XMLHTTP");?

(2)、连接到服务器 oAjax.open('get/post', 'a.txt', true); //open参数,请求方式,文件名, 异步传输,false为同步传输

正常的同步和异步:

同步:多个事情一起来

异步:事情一个个来

而在js里面同步和一步相反,异步是多个事情一起来

(3)、发送请求? oAjax.send();

(4)、接收返回值?

(责任编辑:IT教学网)

更多

推荐CSS教程文章