Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 401 Jquery post和MVC出现未经授权的错误_Asp.net Mvc_Asp.net Mvc 3_Jquery - Fatal编程技术网

Asp.net mvc 401 Jquery post和MVC出现未经授权的错误

Asp.net mvc 401 Jquery post和MVC出现未经授权的错误,asp.net-mvc,asp.net-mvc-3,jquery,Asp.net Mvc,Asp.net Mvc 3,Jquery,我正在构建一个使用Windows身份验证的MVC应用程序。我想通过使用jQueryPost向服务器发送帖子来处理dropdownlist更改事件 下面是我要调用的控制器方法: [HttpPost] public JsonResult UpdateConversion(int conversionId, int? conversionStandardId) { // Some statements here } 下面是处理下拉列表的onchange事件的javascript函数: fun

我正在构建一个使用Windows身份验证的MVC应用程序。我想通过使用jQueryPost向服务器发送帖子来处理dropdownlist更改事件

下面是我要调用的控制器方法:

[HttpPost]
public JsonResult UpdateConversion(int conversionId, int? conversionStandardId)
{
    // Some statements here
}
下面是处理下拉列表的onchange事件的javascript函数:

function onConversionValueChange() {
    var input = $(this);
    var conversionId = input.attr('id').replace('ConversionFor', '');
    var selectedValue = input.val();

    if (selectedValue == '') {
        $.post(Conversions._UpdateConversionURL, { conversionId: conversionId }, onConversionValueChanged);
    }
    else {
        $.post(Conversions._UpdateConversionURL, { conversionId: conversionId, conversionStandardId: selectedValue }, onConversionValueChanged);
    }
}
我不认为这些方法有什么问题,因为当我最初加载页面并进行更改时,post调用会工作好几次。但一段时间后,它在一个事件中调用post 3次,并在所有事件中返回401个未经授权的错误。尽管第三次通话似乎很成功


有人能帮我吗?谢谢。

这正是Windows身份验证(NTLM)的工作原理。这是一种质询/响应身份验证方案,其中客户端发送请求,服务器通过生成nonce质询客户端以证明其具有正确的凭据,然后客户端进行身份验证。您可以在此处阅读更多内容:

通常,一旦通过身份验证,用户代理就不需要在后续请求中经历所有阶段,并且应该能够直接发送身份验证凭据