2012-03-21 45 views
0

我在一個url中有一些asmx web服務(即example.com/Entities/WebServices假設example.com是我的域名)。這樣做的目的是能夠像所有應用程序中的員工那樣訪問域數據。因此,根據舉例來獲取員工數據,我使用的方法example.com/Entities/WebServices/EmployeeWs.asmx/GetAll

當我嘗試從我的本地主機與JQuery.Ajax獲取員工數據時,它在IE8上正常工作。但是,當使用Firefox時,$ .ajax調用將我發送到成功函數,但帶有空信息(也檢查了來自螢火蟲的響應,它是一個200 OK - 0字節)

我已經把jQuery.support.cors = true;但它在Firefox或Chrome中沒有幫助。

我也嘗試在example.com/TestProject中發佈測試應用程序,但結果是一樣的。它只適用於IE。

是否有人知道可能是錯誤的原因?

使用IE8,Firefox 8.0.1,Chrome 11.0.6。 JQuery 1.7.1

在此先感謝。

var requestedUrl = "http://example.com/Entities/WebServices/EmployeeWs.asmx/GetAll"; 

jQuery.support.cors = true; 

$.ajax({ 
    type: "POST", 
    contentType: "application/json", 
    url: requestedUrl, 
    dataType: 'json', 
    contentType: "application/json; charset=utf-8", 

    success: 

    function(result) { 

     alert("ok. " + result); 

    }, 

    error: 

    function(xhr) { 

     alert("err. " + xhr.responseText); 

    } 

}); 

回答

-1

端口/協議是一樣的嗎?例如,如果您從https://example.com調用http://example.com,則可能發生此錯誤。

編輯:看看那裏。我沒有自己測試。 How do jQuery do its cross-domain ajax calls and how can I replicate em with mootools

+0

是的,我使用http協議,但每個Web應用程序都駐留在同一服務器中的特定端口和應用程序中。如果我不使用jQurey.support.cors = true語句,那麼在IE中也會出現跨域錯誤。但把它放在瀏覽器中,Firefox中沒有錯誤,但也沒有返回數據。 – 2012-03-21 13:31:39

+1

我認爲你的問題來自於那。如果每個應用都位於不同的端口上,則會將其視爲其他域。 – haltabush 2012-03-21 13:41:06

+0

是的,我知道,但它應該工作,如果我使用jQuery.support.cors = true,是嗎?一個也在IE瀏覽器工作,我收到任何瀏覽器沒有錯誤,只是沒有收到數據。 – 2012-03-21 14:34:36