2011-12-20 48 views
0

我試過很多方法讓jQuery調用WCF服務而沒有錯誤,但沒有運氣。我的WCF服務位於主站點的子域中。我已經盡我的AJAX調用之前添加以下:從jQuery調用WCF時接收「訪問被拒絕」

jQuery.support.cors = true; 

但是我收到一個「拒絕訪問」消息。如果我評論說出來,使用:

document.domain = "mylightdisplay.com"; 

我收到「無交通運輸」消息。

任何人都遇到過這種情況,並有解決這些異常的解決方案?它有效,當我有本地主站點使用本地主機,我試圖連接到遠程服務器上的Web服務。測試這種情況時,我正在使用Web Matrix。

這裏的代碼片段如下要求:

function populateData() { 
    $.support.cors = true; 
    $.ajax({ 
     type: "GET", 
     url: "http://mydomain.com/myservice.svc/GetInfo", 
     dataType: "json", 
     success: function(msg) { 
      ... 
     }, 
     error: function (msg) { 
      ... 
     } 
    }); 
} 

回答

0

Got it!不得不添加下面的Ajax調用:

jsonpCallback: "MyMethodResult", 
dataType: "jsonp", 
0

我們需要比這更多的信息,蓋洛德先生。

您能否給我們一個完整的嘗試連接代碼片段,以及您嘗試連接的WCF方法?

與此同時,檢查子域問題。我知道jQuery不喜歡因爲XSS措施而對Web服務進行跨域調用...... JSONP有時需要解決這個問題。我沒有嘗試過使用子域名,但是跨域的確是一個問題。

+0

我會包括一個樣本,但正如我所說,調用工作除了一個子域的呼叫。 – 2011-12-20 18:34:01

+0

這不是一個POST,所以我提到的跨域問題不應該是一個問題。我不確定沒有運輸錯誤是誠實的。最新的'.support.cors = true'是什麼? – 2011-12-20 19:38:06

+0

這允許跨域訪問。即使我刪除document.domain(無論如何拋出異常),我都會收到一條No transport消息。 – 2011-12-20 19:52:09