2011-10-04 27 views
0

時,我有AJAX查詢

var url = "http://ISAServer.domain.com/WebSite"; 

    $.ajax({ 
     url: url, 
     success: function (data) { 
      alert('Load Successful'); 
     }, 
     error: function (data) { 
      alert('error'); 
      console.log(data); 
      console.log(data.readyState); 
      console.log(data.status); 
      console.log(data.statusText); 
      console.log(data.responseText); 
     }, 
     dataType: 'json' 
    }); 

錯誤回調被調用。爲了通過ISA,我使用了一個IPad。使用IPad,返回的值不是很有幫助。

  • 的翻譯:
  • 錯誤
  • 「」

我相當肯定的問題是跨域GET請求。 ISA某種程度上應該我重定向到

「HTTP://internal.domain/WebSite」

但它失敗。當我沒有通過ISA並且從同一個域發出$.get請求時(如果我嘗試跨域,如localhost到服務器,則失敗),情況會很好。

我正在使用ASP.NET MVC-3。我一直沒有成功實現相對URL。他們最終形式

的 「http://服務器/站點名稱/控制器/ ControllerService查詢」

當它應該是

的 「http://服務器/站點名稱/ ControllerService查詢」因此,除非你知道如何解決這個問題,否則相對URL不是一個選項(因爲我們必須經歷ISA,我非常懷疑它會解決任何問題)。我有一個幫助方法解決當前路徑「http:// servername/siteName」。

任何提示,意見建議?

+0

我們通過內外相同的域名解決了這個問題。 company.com/site在內部和外部使用。 DNS只是解析爲不同的IP地址。我將把這個問題留給編程解決方案。 –

回答

0

您無法執行跨域的Ajax請求。那麼有辦法做到這一點,但是出於安全原因,內置庫不允許它。

http://www.ajax-cross-domain.com/提供了一種方法來做到這一點。雖然我從來沒有嘗試過,但我無法擔保。

但是,從上面的URL可以看出:「在客戶端javascript中,由於同源策略,這個功能並不存在,儘管這個策略對於健壯的安全模型是必需的,但程序員往往會因爲想發送並檢索到遠程服務器的請求。「