我在一个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