2012-09-18 115 views
0

我猜這個問題在本論壇沒有被問到,試過尋找很多但沒有匹配或爲我工作。下面是代碼的jsfiddle鏈接:

JSFiddle

一切都在IE8和IE9的工作很好,但沒有在任何其他瀏覽器。我試圖尋找鉻從我得到的問題

XMLHttpRequest cannot load http://v3.actisku.com/GetUserPostData?pid=Test-37&surv=1170. Request header field X-Requested-With is not allowed by Access-Control-Allow-Headers 

我試圖尋找必要的解決方案,即CORS,但無法找出解決方案。我並肩尋找相同的東西。

編輯:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<html><head> 

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari 
       xmlhttp = new XMLHttpRequest(); 
      } 
      var contents = $.ajax({ 
       url: 'http://v3.actisku.com/GetUserPostData?pid=Test-37', 
       cache: false, 
       crossDomain: true, 
       dataType: 'html', 
       data: { surv: '1170'}, 
       async: false 
      }).responseText; 

      var test = contents; 
      alert(test); 
      test = test.replace(/\t/g, ';'); 
      alert(test); 
      test = test.replace(/\n/g, 'break'); 
      alert(test); 
      $('#contentArea').attr('value', test); 
     }); 
    </script> 
</head> 

<body> 
<textarea id="contentArea" rows="10" cols="50"></textarea> 
</body> 
</html>​ 

不能手動,以便服務器感覺就像是從IE本身獲得的請求添加頁眉。

問候, ICR

+1

我在你的小提琴上使用了鉻,並獲得了數據..沒有錯誤的某種... – KyorCode

+0

它在Chrome中爲我工作。您可能需要服務器權限。 – Dev

+0

我也是,我沒有任何問題,當我檢查它 –

回答

2

確定的說,有...「請求頭域X-請求 - 由於沒有被訪問控制允許報頭允許」 所有AJAX/XHR請求被阻塞服務器。請嘗試與服務器管理員聯繫有關服務器配置

的IE使用了不同的方式,因爲他們使用的是ActiveXObject("Msxml2.XMLHTTP")ActiveXObject("Microsoft.XMLHTTP")的服務器可能讀取他們有所不同,因爲它們是通過發送Ajax請求(所以他們不會被阻止)到標題。

+0

謝謝你的回覆,但我確實知道這個解決方案。不幸的是,我沒有訪問服務器配置和管理員。有沒有其他方法 – icr

+0

以及我們可以做的事情是(我不知道是否可能)我們可以模擬由IE發送的任何ajax請求的標頭,以便服務器不會阻止我們的ajax請求 –

+0

我不知道怎麼樣,介意如果你分享一個嘖嘖或者相同的鏈接,這會有很大的幫助。 – icr

0

代碼中沒有任何東西可以創建瀏覽器不兼容性。實際上,它們在Firefox和Chrome中運行良好。但是,這似乎沒有必要。

if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp = new XMLHttpRequest(); 
} 

正如Mahan所說,這看起來像是服務器配置問題。

+0

請不要執行JSfiddle本身的代碼與JavaScript代碼一起製作HTML文件的副本。請參閱我編輯的帖子。 – icr

相關問題