$ .ajax POST提示验证对话框

时间:2017-02-07 14:00:51

标签: ajax post

我正在尝试使用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方法。

任何帮助都非常赞赏。

1 个答案:

答案 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帖子工作正常。