我正在尝试使用AJAX POST调用WebMethod,但浏览器会一直打开一个“身份验证”对话框'。在使用下面详述的类似代码之前,我没有遇到过这个问题。
在我的search.aspx文件中,我有以下内容:
HTML
<a href="javascript: ExpandChild('div4');" runat="server"> <img alt="Students" id="imgdiv4" src="images/arrow-right-b.png" />
</a>
JS
function ExpandChild(input)
{
//somethings are done here
LoadStudentData();
}
function LoadStudentData()
{
$.ajax({
type: "POST",
url: 'webmethods.aspx/TestCall',
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: 'json',
success: function (data) {
alert("ajax called");
},
error: function (result) {
alert("An unknown error occurred, please try again: " + result.responseText);
}
});
}
在我的webmethods.aspx文件中,我有以下内容:
[WebMethod()]
public static string TestCall()
{
return "it worked";
}
我知道代码获取了LoadStudentData方法,但我不知道为什么它会打开一个身份验证对话框。 search.aspx页面和webmethods.aspx页面都在我项目的根目录中
我正在使用Visual Studio 2015,在我的本地计算机上运行时,Chrome和Firefox会出现此问题。调试代码时,它永远不会进入TestCall方法。
任何帮助都非常赞赏。
答案 0 :(得分:0)
关注这篇文章 http://www.aspforums.net/Threads/105222/Error-SystemInvalidOperationException-Authentication-failed/
在App_start / RouteConfig.cs中我改变了
settings.AutoRedirectMode = RedirectMode.Permanent;
要
settings.AutoRedirectMode = RedirectMode.Off;
然后ajax帖子工作正常。