我正在 ASP.NET MVC 5 中尝试基于令牌的身份验证。一切都在 PC 浏览器上运行(登录页面、注册页面、数据页面)。
这是登录脚本代码
<script type="text/javascript">
$(document).ready(function () {
$('#btnSignIn').click(function () {
var loginData = {
grant_type: 'password',
username: $('#txtSignInEmail').val(),
password: $('#txtSignInPassword').val()
};
$.ajax({
type: 'POST',
url: 'Token',
data: loginData
}).done(function (data) {
$('#user').text(data.userName)
$('#UserName').text(JSON.stringify(data.userName));
localStorage.setItem('accessToken', data.access_token);
localStorage.setItem('qubaUserName', JSON.stringify(data.userName));
}).fail(function (showError) {
$('#signInError').text(JSON.stringify(showError));
});
});
})
</script>
当我尝试在我的电脑上登录时,它成功登录。
但是在我的手机上,它显示了一个错误,如屏幕截图所示。
更新
它仅适用于移动 Chrome 浏览器。我检查了 Mozilla,它完全符合我的期望
更新
如果我制作
url:'Token'
,它可以在 Android 中的本地机器和 Mozilla 浏览器上运行,但不能在任何其他 PC(chrome 和 Mozilla)和 Android(chrome 浏览器)上运行
当 URL:'令牌'
它从本地电脑向此链接发出请求http://localhost/ProjectName/Token
但它会从其他 PC 浏览器和 Android Chrome 浏览器发出请求,例如http://localhost/Token
如果我更改
URL:'ProjectName/Token'
不在本地电脑上工作(我在 IIS 上部署的位置),但是,它可以在所有 Android 浏览器(chrome 和 Mozilla)和其他电脑上工作
当 URL:'ProjectName/Token'
它从本地电脑向此链接发出请求
http://localhost/ProjectName/ProjectName/Token
但它会从其他 PC 浏览器和 Android Chrome 浏览器发出请求,例如http://localhost/ProjectName/Token
那么如何为所有客户端(本地电脑和远程客户端)创建通用 URL