Bug筆記:詭異的$.ajax


用$.ajax用POST方式提交請求到一個ASPX頁面執行后台代碼時,發生一樁詭異的事情。。。

假設后台代碼寫在Test.aspx及Test.aspx.cs中。如用:

$.ajax({
    url:"Test.aspx",
    type:"POST",
    data:{
        parameter:value
    },success:function(response){
            //Call back function
    }
});

通過Console控制台可以看到,在運行success的Callback時,會一下子執行兩個請求。先是“POST”,后是“GET”。第一個“POST”,通過data正常傳送了參數,但是返回信息有錯。第二次“GET”,則既無傳參,也無返回。

這個問題直接導致了后台.NET無法獲取到參數並返回正確的值。

解決的方式很奇特,只要將url中的Test.aspx改為test.aspx,或者將Ajax的type改為"GET"就可以正常運行。即:

$.ajax({
    url:"test.aspx",
    type:"POST",
    data:{
        parameter:value
    },success:function(response){
            //Call back function
    }
});

這算是個JS或者.Net的BUG么?


把上面這句話刪掉。實在沒想到初來乍到,為學習求知積累的目的寫下博文,隨口一句問句被解讀成了“裝B的2貨”。

看到后面幾條評論才品味出@BruceL 話語里濃濃的諷刺。

謝謝@KindFace 的提示。我試着加了dataType,並改了一些參數名字,文件名有大小寫時依舊有錯。有可能是我dataType寫的不對,我並沒有一個個試過來,因為這是個從前輩手上剛接手的一個成熟已上線的項目,代碼結構比較復雜也不好改。東西也交給別人去測試了,我也沒有本地環境繼續嘗試。。。慢點搭一個比較干凈的代碼環境測試。

@孤月狼 我確定這樣改了以后一切運行正常,IE7/8/9/Firefox/Chrome都測試成功。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM