我是棱角分明的新手。现在我有一个向服务器发送请求的应用程序。登录工作正常,服务器使用Set-Cookie字段中的会话信息以及其他数据进行响应。问题是我既不能使用角度js读取此信息,也不能执行任何其他需要登录的操作。我尝试过的解决方案之一是; This但它会给出以下错误:
对预检请求的响应没有通过访问控制检查: “访问控制 - 允许 - 来源”的价值'响应中的标题必须 不是通配符' *'当请求的凭据模式是 '包括&#39 ;.因此不允许来源
http://localhost:52000
访问。由...发起的请求的凭据模式 XMLHttpRequest由withCredentials属性控制。
当我尝试使用 ngCookies 模块时,每当我尝试访问有意义的会话数据时也会返回null,因为我无法首先访问该数据。我该如何解决这个问题?哦,也许值得一提的是服务器在不同的域上并使用C#。 任何帮助将受到高度赞赏。
以下是登录控制器:
appAuth.controller('ctlLogin', function ($scope, $http, $cookies, $rootScope) {
$scope.userCreds = {};
var config = { withCredentials: true };
$scope.login = function () {
$http.post(urlLogin, $scope.user, config).then(function onSuccess(response) {
console.log('success');
var session = $cookies.get('Set-Cookie');
console.log(session);
}, function onFailure(response) {
console.log('failure');
});
};
答案 0 :(得分:1)
答案 1 :(得分:0)
当您提到您的服务器位于另一个域时,您必须在服务器中启用CORS请求。 您发出请求的服务器必须实施CORS才能从您的网站访问中授予JavaScript。您的JavaScript无法授予自己访问其他网站的权限。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Server-Side_Access_Control