1

我們正在提供一個HTML的snippit,我們的客戶可以在他們的網站上嵌入以對我們的API進行回調。這個HTML是一個簡單的表單和一個在我們的服務器上託管的Javascript文件。在FF和Chrome中工作的跨域腳本標記,但不包含IE

這是在其網站上(clientsite.com)的客戶端主機:

<script type="text/javascript" src="http://mysite.com/webcallback/callback_script.js"></script> 
<form onsubmit="makeCallback();return false;"> 
<input id="myInput" type="text" /> 
<input type="submit" value="Go" /> 
</form> 

當makeCallback被調用時,託管在mysite.com的腳本執行以下操作:

var xhr = new XMLHttpRequest(); 
xhr.open("GET", "http://mysite.com/api/callback.php"); 
xhr.send(); 

公告腳本的域和XHR請求的域是相同的,但託管表單和腳本標記的HTML位於clientsite.com上。

這在FF和Chrome中正常工作,但在IE中,我得到一個訪問被拒絕的錯誤。我想它與同源策略有關,但我試圖理解爲什麼這在FF和Chrome中可用,但不是IE。有沒有辦法讓它在IE中工作?

感謝

回答

1

所包含的腳本中即包括它,而不是在它自己的範圍內頁的範圍內執行。因此,您的代碼正在請求來自不同的域。

允許此請求的瀏覽器擁有更輕鬆的跨域限制版本。

相關問題