一个关于Jquery Ajax和ashx(IE,FirFox,Google)的小问题

最近在做一个项目,Js方面用Jquery和Josn相结合用的比较多,特别是Jquery的Ajax,但是今天我突然遇到一个诡异的问题。

  一、配置服务器端。

    新建一个Application的Project,添加一个ashx的文件,打算用这个ashx文件作为Jquery的Ajax的异步相应,在webconfig的HttpHandler中也配置好了。到这里服务器端的东西都已经搞好了,当然ashx里面的逻辑代码也写了一个测试Function了。

  二、Web前台的调用

    在web页面中引用Jquery的相关文件,添加一个input(button)同时添加上一个onclick的异步Function(使用Jquery的 

      $.ajax({
              type: "POST",
              url: url,
              data: data,
              dataType: "json",
              success: cb,
              error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert("url:" + url + " error:" + errorThrown);
              }
        });)。  

    到这里,一起都准备好了。

  三、测试

   一下三种浏览器的测试我都是在Application的project那里直接Ctrl+F5的,生成的URL是IIS自动分配的端口号

    IE:我在IE中点击button触发异步的Function,第一次有返回,第二次没有,第三次没有,........奇怪了??有时候有返回有时候没有,怎么会这样的呢?nnd技术上的东西有时候就像1+1=2那样得就得唔得就返顺德那种的哦。

      1. OK,那我就调试进去吧,有奇怪了,每次button触发异步的Function在服务上都有接收到啊,而且代码执行的逻辑都没有问题哦。

      2. OK,那我看看Jqeury的errorFunction有返回什么信息吧,发现没有,只是提示说throw了一个ex而已。

      3. OK,那行,我就用HttpWatch偷看一下从异步触发到返回的这个过程吧,发现有成功信息返回时没有什么问题(当然是偶尔成功的),发现有异常返回时返回的是ERROR_INTERNET_CONNECTION_ABORTED(The connection with the server has been terminated)。发诡异了为什么请求会terminated的呢?不知道。

      4. 先不理会IE先。

    Firfox:完全没有问题,每次的请求都有成功的返回。????为什么IE有时候行有时候不行呢?

    Google:完全没有问题,每次的请求都有成功的返回。????为什么IE有时候行有时候不行呢?

  测试到这里,我更晕了,为什么IE有时候行有时候不行呢?我还是不知道问题出现在哪里。

   好了,我在想,怎么我之前做的一个项目中不是这样的呢?然后我对比了一下所有的相关配置,发现都是一样的呀,除了一个为,就是行的那个project是一个WebSite的project,而现在这个是一个Application的project。OK,那我就为这个Application的project创建一个VirtualPath吧,进行测试后发现在IE,Firfox和Google上都完全没有问题,之前IE不行IE都可以了哦。那究竟为什么会出现这样的问题呢?我google一下没有找到问题的所在。

  呵呵,小弟不才,请教各位大侠,究竟是什么原因造成这样的呢?

posted @ 2009-12-04 23:59  24-7  阅读(2368)  评论(8)    收藏  举报