我在后端使用 Angular 4 和 ASP.NET Web api 2,并启用了 Windows 身份验证。我有一篇文章和一篇 get api。GET 工作正常。但对于 POST 我收到此错误
预检响应具有无效的 HTTP 状态代码 401
这意味着我收到 OPTIONS 方法的未经授权的错误,但我知道不应该出现这种情况,因为永远不会使用用户凭据调用 OPTIONS 方法。
在角度中我调用 api 如下
let requestOptions = new RequestOptions({
withCredentials: true,
headers: new Headers({
'content-type': 'application/json'
})
})
this.http.post("someapiendpoint", JSON.stringify(data), requestOptions).subscribe(data => {
debugger;
});
Run Code Online (Sandbox Code Playgroud)
我已在 Web 配置中设置所有 CORS 标头,如下所示
<add name="Access-Control-Expose-Headers " value="WWW-Authenticate"/>
<add name="Access-Control-Allow-Origin" value="http://localhost:4200" />
<add name="Access-Control-Allow-Headers" value="accept, authorization, Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
<add name="Access-Control-Allow-Credentials" value="true" />
Run Code Online (Sandbox Code Playgroud)
我的 …
$a="";
$b="n";
$c = !$a;
$d = !$b;
print $c , "\n" , $d;
if($d == 0){
print "zero";
}
Run Code Online (Sandbox Code Playgroud)
我写了这个perl程序,我期望输出如下
1
0Zero
Run Code Online (Sandbox Code Playgroud)
但它打印出来
1
zero
Run Code Online (Sandbox Code Playgroud)
可以任何人解释我为什么会这样?
我有以下代码.我正在尝试的是制作一个简单的登录和仪表板应用程序.成功登录后,用户可以看到仪表板,我有两条路线登录和仪表板初始登录路线是默认的一旦登录成功然后我想路由到仪表板路线,相应的模板和控制器应该加载但不知何故不起作用.我需要帮助才能找出问题所在
的index.html
<html lang="en" ng-app="salesApp">
<body ng-controller="loginController">
<form name="loginForm">
<!--login form-->
</form>
<script src="./js/lib/angular.min.js"></script>
<script src="./js/lib/angular-route.min.js"></script>
<script src="./js/app/salesApp.js"></script>
<script src="./js/controller/loginController.js"></script>
<script src="./js/services/communicationService.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
loginController.js
app.controller('loginController', function($scope, $http, communicationService, $location){
$scope.isLoginFailed = false;
$scope.login= function(){
$http.get("http://localhost:8080/login?username=" + $scope.user.username + "&password=" + $scope.user.password)
.success(function(response){
if(response.sessionId && response.loginSucceeded){
$location.path("/login");
}else{
$scope.isLoginFailed = true;
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
salesApp.js
var app = angular.module("salesApp", ['ngRoute']);
app.config(['$routeProvider',
function($routeProvider) {
debugger;
$routeProvider.
when('/login', {
templateUrl: '../../login.html',
controller: 'loginController'
}).
when('/dashboard', {
templateUrl: '../../dashboard.html',
controller: 'dashBoardController'
}). …Run Code Online (Sandbox Code Playgroud)