jquery1.8版本使用ajax實現微信調用出現的問題分析及解決辦法_AJAX相關

來源:互聯網
上載者:User

先給大家說下問題背景:最近在做一個項目,開發微信的某個功能,使用的是asp.net開發,jquery1.8.0版本。

   在微信中點擊按鈕觸發事件,調用ajax與伺服器端進行互動,回呼函數走的是error。

分析原因:首先我想到的是返回的資料類型有問題,因為在jquery 版本在1.4以上對json的格式非常嚴格,需要符合{"target":true,"message":"成功"}這樣的格式。用JSON.stringify()函數分析了response對象,結果符合,排除了原因。

既然ajax 走的是error,我開始分析error函數的參數,分別有XMLHttpRequest, textStatus, errorThrown。我發現XMLHttpRequest.status等於0,XMLHttpRequest.readyState等於0,說明表單中有XMLHttpRequest對象卻沒有初始化,接下來開始研究怎麼初始化XMLHttpRequest對象。

解決辦法:

var xmlHttpRequest;$(function(){if(window.XMLHttpRequest){xmlHttpRequest=new XMLHttpRequest();}else{xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");}xmlHttpRequest.open("GET","AjaxServlet",true);});

這樣就能解決以上描述的問題,注意PC端訪問一般的Ajax不會出現問題,因為PC中瀏覽器都有內建的 XMLHttpRequest對象,而在微信中,出現此現象,可能需要手動去構建和初始化。

ps:安卓版微信內建瀏覽器和IE6瀏覽器ajax請求abort錯誤處理

給頁面元素繫結了一個click事件用來觸發ajax請求,在安卓微信內建瀏覽器中和IE6下,請求時常會被中斷,返回錯誤類型“abort”,在其他瀏覽器中都一切正常。

在IE6中使用Fiddler2和httpWatch監視請求,經常會出現”aborted”,折騰特麼一個周末,。。。。。

不說廢話了....

解決辦法:在標籤上加上onclick='return false;'

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.