今天再写代码时发现 当将浏览器的代理设置成一个错误的代理时,使用JQuery框架的 ajax 方法 发送ajax请求时出现执行Success方法。并且只在FF 和 Chrome下出现 IE 则正常执行ERROR 方法。
Ajax调用代码如下       $.ajax(
                {
                  url: horoscopeUrl,
                  cache: true,
                  timeout: settings.timeout,
                  success: function(content)
                  {
                    displayContent(content);
                    setZodiacSign(zodSign);
                  },
                  error: function()
                  {
                    displayContent(settings.serviceErrorMsg);
                  }
                });
按照正常思维 当将浏览器的代理设置成一个不存在的代理时,Ajax请求应该返回Error并且执行代码中定义的ERROR function但是在FF 和 Chrome下 却执行 Success 方法 。向高手求解。

解决方案 »

  1.   

    自己顶一下,中英日各种语言google中。仍然无解。。
      

  2.   

    是不是之前有访问记录,我这里FF,Chrome都会转到error函数的。你这里的cache=true~~~
      

  3.   

    Chrome 没用过。
    但是你的标题太奇怪啦。。呵呵
      

  4.   

    url: horoscopeUrl+'?'+new Date().getTime() ,//加上个随机数试试
    cache: false,
      

  5.   

    看这行不,不行的话把timeout: settings.timeout,去掉
    Ajax请求是限时的,所以错误警告被捕获并处理后,可以用来提升用户体验。请求超时这个参数通常就保留其默认值,要不就通过jQuery.ajaxSetup来全局设定,很少为特定的请求重新设置timeout选项。 
      

  6.   

    不是 catch的原因 。我试过了。
      

  7.   

    因为设了错误的proxy。。所以真正的ajax请求的URL 相当于不存在的 或者说是访问不到的也不是timeout的原因。如果是这些原因的话IE下面也会有同样的问题 ,现在的关键是IE 正常 FF chrome 不正常访问不到 ajax请求的URL 时居然执行 success 
      

  8.   

    你看看在浏览器中请求错误的代理页面,ff会返回什么?
    可能是ff做了处理,只能说明ff在请求这个代理url的时候并没有发生异常信息
      

  9.   

    这是 1.4.3 之前的 BUG
    更新到 1.4.4 , 自动解决。http://efreedom.com/Question/1-3969646/Ajax-Call-JQuery-Fires-Success-Function-Even-Server-Respond