`

jquery ajax 请求的问题

阅读更多
今天程序中有个地方需要 Ajax 方式 POST 数据,发现在 IE 6.0 下正常,而 FireFox 0.3.0 和 safari 3.1.2则出错。

通过 FireBug 抓取 ajax 回发后得到的页面信息如下:

HTTP Error 411 - Length required

经过 google 搜索发现,这个 HTTP 状态码对应于服务器没有接收到 Content-Lengh 这个 Header 的情况。

而为什么只有在 Ajax 的情况下有呢?是因为调用了:
xmlHttp.send(null);

发送 null 的时候,服务器就有可能发出以上信息。而按照正常逻辑,不需要发送信息的时候,应该用 GET 方法而不是 POST (在 xmlHttp.open 方法中指定),那样就能解决此问题。
但也可以用:

xmlHttp.send('');

来解决。

因为我调用了 jQuery 的 $.ajax 方法来间接实现的 Ajax 功能,所以,jQuery 中调用 $.ajax 时,无论有没有数据,总是写一个空字符串为数据,就可以避免这种问题了:

$.ajax( {
url :'<%=request.getContextPath()%>/plugins/servlet/getIssues',
data :"projectId=" + projectId + "&componentId=" + componentId,
type :'POST',
dataType :'xml',
data :'',
        error : function(XMLHttpRequest, textStatus, errorThrown) {
dealAjaxError();
          },
success : function(xml) {
dealWithXMLData(xml);
$("#flag").attr("value","false");
}
});


至于为什么 IE 可以而 FireFox 则出错,可能是因为 IE 中的 xmlhttp 对象和 FireFox 的 XmlHttpRequest 行为稍有不同造成的。
分享到:
评论

相关推荐

    为jquery的ajax请求添加超时timeout时间的操作方法

    在现代Web开发中,使用jQuery进行Ajax请求是一种常见的操作。jQuery作为一个广泛使用的JavaScript库,简化了从客户端到服务器的数据交互,而Ajax超时的设置则是保证请求响应时效性的重要手段。当客户端向服务器发送...

    Jquery跨域Ajax请求测试

    本示例"Jquery跨域Ajax请求测试"将详细讲解如何利用jQuery实现这一功能。 首先,了解同源策略是理解跨域问题的关键。同源策略是浏览器为了保障用户安全而设定的一项机制,它规定了只有来自同一协议、同一域名和同一...

    jQuery-ajax-用户名异步请求

    在Web开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理以及Ajax交互。本主题聚焦于jQuery中的Ajax功能,特别是如何利用它进行异步用户名验证。Ajax,即Asynchronous JavaScript and ...

    一个完整的jquery+ajax传送请求的实例

    本文将深入探讨一个完整的jQuery+AJAX传输请求的实例,旨在帮助开发者理解如何有效地使用这两种技术实现异步数据通信。 首先,jQuery是一个强大的JavaScript库,它为DOM操作、事件处理、动画效果和Ajax交互提供了...

    jQuery中ajax请求后台返回json数据并渲染HTML的方法

    jQuery中的AJAX请求是一种非常常见的前端异步数据交互方式,它的作用是使得页面无需重新加载即可向服务器请求数据,并将数据动态地加载到页面中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它...

    Jquery Ajax分页(有实例)

    - 对于文字分页,我们可以看到如何使用jQuery选择器定位分页元素,动态生成和更新页码链接,同时通过AJAX请求获取新的数据。 - 图片分页可能涉及到图片预加载和懒加载技术,确保在用户滚动到相应位置时,图片能够...

    Jquery ajax请求导出Excel表格的实现代码

    以上知识点覆盖了jQuery、AJAX、前端与后端交互、数据请求和处理、页面动态操作、以及代码的场景应用等多个方面,能够为开发者提供关于使用jQuery实现AJAX请求导出Excel表格功能的全面理解和实现细节。

    jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法

    jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Object.success,但后台能够返回数据,原代码如下: var source=[]; $.ajax({ ...

    asp+jquery ajax实例源码,添加,删除,修改,分页

    - jQuery的$.getJSON()和$.get()、$.post()方法使AJAX请求更易编写,同时提供了一系列便利的事件处理函数,简化了页面元素的操作。 - 结合使用,可以轻松实现如分页链接的点击事件监听,触发AJAX请求,更新页面...

    Jquery ajax 获取验证码

    然后,我们可以编写jQuery事件监听器来发送AJAX请求: ```javascript $(document).ready(function() { $("#getVerifyCode").click(function() { $.ajax({ type: "POST", // 通常用POST方式发送验证码请求 url: ...

    Struts2+jQuery ajax的一个商品小系统

    5. **Ajax请求**:在前端,使用jQuery的`$.ajax()`或者更高级的`$.post()`、`$.get()`方法发送Ajax请求,例如添加商品时,将商品信息发送到服务器。 6. **JSP页面**:展示商品列表和详细信息,使用Struts2的标签库...

    jQuery Ajax前后端使用JSON进行交互示例

    本篇文章主要介绍了jQuery Ajax前后端使用JSON进行交互示例,实现前端通过jQuery Ajax传输json到后端,后端接收json,对json进行处理,后端返回一个json给前端,有兴趣的可以了解一下。

    jquery ajax源代码

    在提供的代码片段中,可以看到两个函数:`doload1` 和 `doload2`,它们都使用了 jQuery 的 AJAX 方法来发送请求并处理返回的数据。 ##### 2.1 doload1 函数 ```javascript function doload1() { $.ajax({ url: ...

    jqueryajax jquery ajax

    jQuery提供了`$.ajaxStart()`和`$.ajaxStop()`来监听所有AJAX请求的开始和结束。同时,`$.ajaxComplete()`会在每个请求完成后触发,无论成功或失败。 ### 错误处理 使用`error`回调函数可以捕获和处理请求错误,如...

    Ajax+JQuery应用Demo

    工作之余写的一些Ajax应用,有6个Demo,数据库为mysql,使用之前看readme.txt。javascript与jquery混用。无刷新购物车、输入提示、表格局部刷新、xml实时数据更新、划词解释。

    jQuery Ajax过滤器

    总的来说,jQuery的Ajax过滤器提供了强大的灵活性,使我们能够在Ajax请求的各个阶段插入自定义逻辑,包括对数据的预处理和后处理,有效地解决了乱码问题。结合`AjaxForm`插件,我们可以轻松地实现表单的Ajax提交,...

    SpringMVC框架下使用jQueryAJAX进行数据交互

    然后,使用jQuery的`.ajax()`方法或更简单的`.get()`、`.post()`方法发起AJAX请求。例如: ```javascript $.ajax({ type: 'POST', url: '/ajax', // 对应控制器中的方法 data: {key: 'value'}, // 发送的数据 ...

    JqueryAjax简单实例

    在这个"JqueryAjax简单实例"中,我们主要关注如何在Visual Studio 2005 C#环境下利用jQuery实现AJAX的功能。首先,我们需要确保项目中已经引入了jQuery库。这通常通过在HTML头部添加jQuery库的CDN链接或者将jQuery....

    传智播客 jQuery ajax 课件

    - `$.ajax()`: 这是jQuery中最核心的AJAX函数,用于发起一个完整的AJAX请求。参数包括URL、类型(GET或POST)、数据、回调函数等。 - `$.get()`: 用于发起GET请求,简化了`$.ajax()`的使用,只需提供URL和回调函数...

    利用Ajax+Jquery实现异步进度条效果

    2. 编写Ajax请求,设置URL指向C#服务端接口,类型通常为GET或POST。 3. 在Ajax请求的`beforeSend`回调中,启动进度条动画。 4. `success`或`progress`回调接收到服务器返回的进度信息,更新进度条的宽度或填充度。 5...

Global site tag (gtag.js) - Google Analytics