我正在尝试使用来自html页面的jQuery在aspx页面中执行PageMethod,这在我的本地机器上运行良好。但是,当我将网页部署到远程生产Web服务器时,当执行ajax请求时,我收到401 Unauthorized Error。我的代码如下。
$.ajax({
type: 'POST',
url: 'SupplierMethods.aspx/GetAgeSummaryForPendingDocuments',
data: "{ 'supplierId': '" + vid + "'}",
dataType: 'json',
timeout: 180000, //3 minutes is timeout for this ajax request
contentType: "application/json; charset=utf-8",
beforeSend: function () {
},
success: function (json) {
stats = json.d.StatsBuckets;
},
error: function (xhr, textStatus, errorThrown) {
alert('An error occurred! ' + (errorThrown ? errorThrown :
xhr.satus));
}
});
});
更新:我的问题是由于一些非常微不足道的事情。我复制了网站到远程服务器,但忘了复制dll的。 PageMethod在ASP.Net网站中被编译成一个dll,因为它丢失了,所以通过jQuery ajax调用PageMethod会带来一条错误信息。所以似乎AJAX的jQuery API都可以。
答案 0 :(得分:0)
我收到401错误,因为ASP.Net网站中包含我使用jQuery ajax调用的PageMethod的新dll未部署到远程服务器。 故事的寓意是 - 始终谨慎部署您的网站,这样您就不会错过任何文件。
还要确保在jQuery中调用ajax的语法符合语法。