jQuery对web服务(asmx)的ajax调用触发一个身份验证弹出窗口



在我的asp.net 4.0电子商务web应用程序中,登录的客户可以点击"过去6个月的订单"或"过去一年的订单"等锚点来查看他过去的订单。当点击这些锚点时,我会对我的asmx web服务方法进行$.ajax调用,以检索过去订单的列表并显示它们,如下所示:

$.ajax({
type: "POST",
url: "/webservices/OrderServices.asmx/GetOrderList",
data: theParamter,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){
displayOrders(data);
},
error: function(errMsg) {
alert(errMsg);
}
});

c#中的web服务方法非常简单,只是一个获取指定过去持续时间的订单列表的web方法。

参数是在ajax调用之前获得的,它只是一个参数,指示客户是想查看过去6个月还是过去一年的订单。

在我使用IIS Express的开发环境中,一切都能完美地工作。但在生产中,当用户点击其中一个锚点时,浏览器会弹出一个小的diablog框,要求用户输入用户名和密码。

是什么原因造成的?web服务(asmx)不知道请求是从经过身份验证的客户发送的?如何防止浏览器显示身份验证弹出窗口?非常感谢。

您的服务器可能具有Windows安全性,或者没有为您的站点正确配置安全性。请访问下面的链接,它们是如何禁用windows安全的指导步骤:

http://www.youtube.com/watch?v=CtpkXsWgcAM

http://technet.microsoft.com/en-us/library/cc731244(v=ws.10).aspx

最新更新