2017-08-03 41 views
1

這裏是我的Ajax調用:.NET和jQuery突然給我401犯錯的

$J.ajax({ 
    type: 'POST', 
    url: "/ajax/getCharts", 
    data: JSON.stringify(cids), 
    dataType: 'json', 
    asynch: false 
}) 

這個工作......直到昨天
我們使用Microsoft.AspNet.Identity;
昨天我在如「管理員」,「用戶」等多用戶角色擴大在默認設置中添加

現在我得到這個犯錯回到我的ajax.fail頭:

X -Responded-JSON: { 「地位」:401, 「頭」:{ 「位置」: 「HTTP://本地主機:56970 /帳號/登錄RETURNURL =%2Fajax%2FgetCharts」}}

哪種有道理 - 如果呼叫失敗,認證
備註:
在我ajaxController我以前註解它是這樣(其中工作):

[Authorize(Roles = "User")] 
public class ajaxController : BaseController 

,現在我擴大它包括我的新的自定義用戶角色使得:

[Authorize(Roles = "Superuser, Poweruser, User")] 
public class ajaxController : BaseController 

,並沒有工作
也i的的RegisterRoutes加入此:

 var settings = new FriendlyUrlSettings(); 
     settings.AutoRedirectMode = RedirectMode.Off; 
     routes.EnableFriendlyUrls(settings); 

所建議ASP.NET Calling WebMethod with jQuery AJAX "401 (Unauthorized)"

,但它沒有工作

,而這個頁面是沒有意義對我說:
jquery $.ajax call results in 401 unauthorized response when in Chrome or Firefox, but works in IE

我失去了什麼嗎?

+0

這裏完全是spitballing,但它應該是[「超級用戶」,「Poweruser」,「用戶」]呢? – Taplar

回答

1

的問題我可以理解爲當用戶試圖登錄說,我剛發的登錄請求。這時我並不手段登錄我沒有任何作用,目前,你已經把一個授權過濾器的AJAX控制器允許一些角色

立即刪除這個問題把allowannonymus屬性只在您登錄行動Ajax控制器內

[AllowAnonymous] 
public async Task<ActionResult> Login() 
{ 
} 

PS: - 不要忘記把它放在後行動,登記冊如果你有一個動作

+0

請澄清 - 我沒有一個ajax登錄()函數,所以我不知道是什麼年指 – toy

+0

@toy ajax登錄函數調用某些服務器端actionmethod權?把允許annonymusö –

+0

哦,我明白你的意思 - 你只是把一個通用名稱在那裏確定,但會影響安全?我的意思是 - 一些隨機的人能夠調用我的ajax函數而不用登錄? – toy