解決jQuery ajax請求在IE6中莫名中斷的問題_jquery

來源:互聯網
上載者:User

情境還原:給a標籤綁定了一個click事件用來觸發ajax請求,在IE6中,請求時常會被中斷,在非IE6中都一切正常。

<a href="javascript:;" id="btn">click me</a><script type="text/javascript" src="jquery.js"></script><script type="text/javascript"> var url = "http://api.flickr.com/services/" "feeds/photos_public.gne?tags=car&" "tagmode=any&format=json&jsoncallback=?"; $( "#btn" ).click(function(){  $.getJSON( url, function( data ){   alert( data );  }); });</script>

在IE6中使用Fiddler2監視請求,經常會出現”aborted”,折騰了許久,相當的詭異。後來將a標籤換成button,請求正常,最後經提醒,可能是a標籤的預設事件中斷了請求。但是,在HTML代碼中,已經將a標籤的href設定成了”javascript:;”,通常這樣是可以阻止預設事件了(頁面跳轉)。a標籤的click事件會先執行,然後才執行href的跳轉,如果href是一段javascript語句,這個時候就會執行。IE6在執行href的javascript語句時就中斷了click觸發的ajax請求。使用href=”javascript:;”是為了阻止預設事件,將阻止預設事件的動作移到click事件中就可以解決問題了,這樣就不會執行href中的javascript語句了。

$( "#btn" ).click(function(e){ $.getJSON( url, function( data ){  alert( data ); }); e.preventDefault();});

註:e.preventDefault(); 這一句的作用就是阻止js中的預設事件。

以上就是本文的全部內容,希望能給大家一個參考,也希望大家多多支援雲棲社區。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.