我有一个使用Azure AD登录开发的MVC应用程序。我使用ajax来调用我的控制器中写入数据库的函数,但是,我引发了这个错误:
https://login.microsoftonline.com/ {XXX} .onmicrosoft.com / wsfed瓦特...%3D0%26id%3dpassive%26ru%3D%252fHome%252fpost&安培; WCT = 2016-11-04T19%3a37%3a05Z。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' https://mysite.mysite.ca'因此不允许访问。
这是发出错误的ajax电话:
$.ajax({
type: "POST",
url: "Home/post",
data: item,
dataType: "json"
success: KPR.showNewApp(item),
error: function (xhr, ajaxOptions, thrownError) {
console.log(xhr);
console.log(thrownError);
}
});
答案 0 :(得分:0)
您对home / post的请求如何(通过JS)转发到login.microsoft.com
据我所知,当你在控制器中添加属性([Authorize])时,控制器中的功能需要授权。如果你想使用ajax,你会遇到CORS问题。我建议您在使用如下所示的ajax时缓存令牌并将令牌添加到其标头中:
$.ajax({
type: "POST",
headers: {
"Authorization": "bearer " + token
},
url: "Home/post",
data: item,
dataType: "json"
success: KPR.showNewApp(item),
error: function (xhr, ajaxOptions, thrownError) {
console.log(xhr);
console.log(thrownError);
}
});