2012-07-11 159 views
2

我有一個在FF,Chrome,Opera和Safari中工作的ajax請求。我在IE中測試了它,它做了兩個請求中的第一個。它從一個php腳本獲取IP,但是當它發佈到我的java servlet時,它不會發出請求;我用小提琴和wireshark進行測試,並且請求沒有被髮送出去。我試過將ajax緩存設置爲false並沒有幫助。不知道它可能是什麼。在PHP發出的唯一區別是IE不發送客戶端接受字符集。這使我相信這個問題與第一個要求有關;然而它正確地獲取數據,所以我有點難過的想法?我刪除了特定的地址,但其餘的代碼差不多。
更改我的代碼,以便我沒有嵌入的請求,我準備好文檔,停止IE凍結但它仍然不發送。此外,它現在返回Ajax請求上的一般錯誤返回值。更改下面的代碼更多Jquery Ajax請求不在IE中發送

<script> 
$(function() 
{ 
    function myfunction(event) 
    { 
     var email = $("#emailInput").val(); 
     if (email.indexOf('@') == -1 || email.indexOf('.') == -1) 
     { 
      alert("Please Enter a Valid Email"); 
     } 
     else 
     { 
      var eEmail = "email:" + email +"," + "ip:" + ip; 
      Email = "="+encodeURIComponent(eEmail); 

      $.support.cors = true; 
      $.ajax(
       { 
       url: 'myServletURI', 
       type: 'POST', 
       data: eEmail, 
       cache: 'false', 
       error: function(xhr,textStatus) 
       { 
        alert(textStatus); 
       }, 
       success: function(data) 
       { 
        //I have a JS lib I wrote to parse results 
        var result = makeDictionary(data); 
        if(result["command"] == "failed") 
        { 
         alert("Error"); 
        } 
        else 
        { 
         window.location = "goToNextPage.html"; 
        }              
       } 
      }); 
     } 
    } 
return false; 
}); 
</script> 

謝謝。

+0

您是否發射了IE瀏覽器的開發者工具「F12」,並確保有沒有在控制檯中的任何JavaScript錯誤?你也可以嘗試一步一步的調試,看看你是否能以這種方式獲得更多信息。 – MichaC 2012-07-12 00:34:23

+0

是的我得到了更多的數據,但它並沒有幫助我,它讓我認爲它是跨站點錯誤,但我已經在我的servlet中啓用它,正如所有其他瀏覽器獲得響應所示,所以仍然卡住。我回到了XHR元數據 'readyState的 Number' '狀態 Number' '狀態文本\t「否傳輸」 \t String' – CubanAzcuy 2012-07-12 03:37:48

+0

我可能已經找到了解決辦法,此刻不能檢查將重新明天發佈。 [鏈接](http://stackoverflow.com/questions/9160123/no-transport-error-w-jquery-ajax-call-in-ie) – CubanAzcuy 2012-07-12 03:56:54

回答

1

你,你認爲這可能是一個跨站點錯誤評論讓我,也許這會握着你的答案的事情:Access denied to jQuery script on IE

要點是,你不能使用jQuery使IE跨站點Ajax請求,你必須使用XDomainRequest。

+0

這是問題所在。在你發佈這個版本之前就已經解決了這個問題。但是,是的,謝謝。 – CubanAzcuy 2012-07-14 15:57:53

0

我使用「GET」,而不是「POST」,它的工作對我來說在IE9