我正在使用HTML和JavaScript(jQuery)开发Web应用程序,用于数据库通信,我在C#中使用.asmx Web服务。
在本地计算机和本地IIS上部署我的应用程序工作正常。问题是,现在我需要将应用程序部署在公司的Web服务器上,现在是每个ajax调用都不起作用并且返回错误401 的时候。奇怪的是,如果我输入ajax调用网址(显示了asmx Web服务),然后返回我的网站并重新加载页面,那么所有的ajax调用都可以使用。例如:
$.ajax({
url: "http://192.168.46.87/MyApp/ws_WebService.asmx/Login"
此ajax调用返回错误401,此后,如果我输入URL http://192.168.46.87/MyApp/ws_WebService.asmx ,则我的Web服务已加载,并且如果我重新加载我的网页的标签,则现在Ajax调用可以正常工作
这是我的ajax调用:
function CallWM(webMethod,JSONToSend,callBackFunction,extraData) {
try {
$.ajax({
type: 'POST',url: "http://192.168.46.87/MyApp/" + webMethod,contentType: 'application/json',dataType: 'json',data: JSON.stringify(JSONToSend),success: function (data,strErr,xhr) {
callBackFunction(data.d,extraData);
},error: function (xhr,textStatus,errorThrown) {
bootbox.alert("Error calling the server!\n" + xhr.statusText);
console.log(xhr.statusText);
console.log(xhr);
$.unblockUI();
}
});
}
catch (err) {
bootbox.alert("Error calling the server!\n" + err.message);
$.unblockUI();
}
}
我已经尝试过更改服务器IIS上的身份验证类型,通过ajax调用发送我的凭据,但收到相同的错误消息,我还可以尝试其他什么操作或者是什么问题?
PD。在我的本地IIS上可以完美运行,现在的问题是我要将我的应用程序移动到Web服务器。