在AJAX呼叫中处理身份验证

时间:2018-08-15 07:14:12

标签: javascript asp.net-mvc

我在控制器中使用以下代码

[HttpPost]
public ActionResult SearchResultsAll(string keyword)
{
 System.Threading.Thread.Sleep(1000);
 string data = "Search results for " + keyword;
 return Json(data, JsonRequestBehavior.AllowGet);
}

并尝试按以下方式进行AJAX调用

$.ajax({
url: "/Home/SearchResultsAll",
type: 'POST',
data: {
 keyword: searchString                        
},
  success: function (data) {
  console.log(data);
  },
  error: function (jqXHR) { 
  console.log("ERROR");},
  complete: function (jqXHR, status) { 
  console.log("DONE"); 
  }
});

我没有获取字符串,而是获得了login页面的HTML代码-是的,我的HomeController上的身份验证处于活动状态

如何在AJAX调用中解决此问题?

1 个答案:

答案 0 :(得分:3)

全局应用授权的问题是必须先登录(授权)才能登录或注册。

[HttpPost]
[AllowAnonymous]
public ActionResult SearchResultsAll(string keyword)
{
 System.Threading.Thread.Sleep(1000);
 string data = "Search results for " + keyword;
 return Json(data, JsonRequestBehavior.AllowGet);
}

AllowAnonymous该属性可帮助您保护整个ASP.NET MVC 4网站或控制器,同时提供一种方便的方法来允许匿名用户访问某些控制器操作,例如登录和注册操作

相关问题