2013-09-23 150 views
0

我通過AD登錄開發Intranet應用程序。在我的應用程序中,我需要從同一服務器上的另一個應用程序加載網頁並在對話框中顯示此頁jquery將頁面加載到對話框

$('#btnExample').click(function() { 

var id = getCurrentId(); 
var url = 'http://SERVERNAME:81/Runtime/Forms/formDetail.aspx?SN=' + id; 

       jQuery.support.cors = true; 

       $('#pagePreview').load(url, function (response, status, xhr) { 
        alert(xhr.status + " " + xhr.statusText); 
       }); 

       $('#pagePreview').dialog(
        { 
         draggable:false, 
         height: 768, 
         width: 1024, 
         modal: true, 
        }); 

       return false; 
      }); 

加載函數拋出錯誤:訪問被拒絕。 爲什麼? 在我的應用程序中,用戶通過Active Directory登錄,第二個應用程序也通過AD登錄...

是否有其他方法可以解決它?我需要在我的網站中顯示此頁面。 謝謝

回答

0

第二頁可能與第一頁不在同一主機上,所以您的請求違反了「同源策略」。

作爲解決方法,請嘗試ajax請求,將html加載到某個內容中,然後使用它填充對話框。如果請求仍然被拒絕,請創建一個本地php腳本,它向指定頁面發出curl請求,並向該腳本發出ajax請求。

如果它仍然失敗...有些事情是錯誤的。

+0

在我的測試服務器上運行IIS兩個應用程序,但在不同的端口... 如果我在瀏覽器中的新標籤(或新窗口)上打開相同的網址它是OK ... – Davecz

+1

即使只有端口是不同的案件被視爲違反同一原產地政策。這基本上是一個限制,它不允許腳本訪問超出其數據範圍的數據,因爲缺少更好的單詞。要解決您的問題,您可以執行curl請求(我在回答中指定)。這很令人討厭,但我知道,生活很糟糕。其他解決方案將使用相同的域和端口的兩個應用程序,在對話框中使用iframe,或...因爲是一個內部的應用程序,禁用所有使用應用程序的瀏覽器的策略(我不會建議它)。 – zozo

+0

你也可以查看一些(基本的)細節:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript – zozo

相關問題