我在一個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);
}
});
是的,我使用http協議,但每個Web應用程序都駐留在同一服務器中的特定端口和應用程序中。如果我不使用jQurey.support.cors = true語句,那麼在IE中也會出現跨域錯誤。但把它放在瀏覽器中,Firefox中沒有錯誤,但也沒有返回數據。 – 2012-03-21 13:31:39
我認爲你的問題來自於那。如果每個應用都位於不同的端口上,則會將其視爲其他域。 – haltabush 2012-03-21 13:41:06
是的,我知道,但它應該工作,如果我使用jQuery.support.cors = true,是嗎?一個也在IE瀏覽器工作,我收到任何瀏覽器沒有錯誤,只是沒有收到數據。 – 2012-03-21 14:34:36