Angular 2 – 预检的响应具有无效的HTTP状态代码401
发布时间:2020-12-17 06:49:23 所属栏目:安全 来源:网络整理
导读:我知道这里已经有很多相同的问题, 但不幸的是他们都没有帮助我:-(. 这是我的问题:我尝试从我的localhost连接到服务器上的REST服务.它适用于FF REST插件,但我的应用程序导致以下错误: 选项http://…/my_REST_Service/ 401(未经授权) XMLHttpRequest无法加载
我知道这里已经有很多相同的问题,
但不幸的是他们都没有帮助我:-(. 这是我的问题:我尝试从我的localhost连接到服务器上的REST服务.它适用于FF REST插件,但我的应用程序导致以下错误: >选项http://…/my_REST_Service/ 401(未经授权) 我如何尝试获取我想要的数据: @Injectable() export class ModelsComponent implements OnInit { private restRoot = 'http://.../my_REST_Service'; private data; constructor(private http: Http) { } ngOnInit() { this.getModels().subscribe(res => { this.data = res; console.log(this.data); }); } authHeaders() { let username: string = 'xxxx'; let password: string = 'xxxx'; let token: string = btoa(username + ":" + password); let headers: Headers = new Headers(); headers.append('Access-Control-Expose-Headers','Authorization'); headers.append('Authorization','Basic ' + token); headers.append("Access-Control-Allow-Origin","http://localhost:4200/"); headers.append("Access-Control-Allow-Methods","*"); headers.append("Access-Control-Allow-Headers","Accept,Accept-Charset,Accept-Encoding,Accept-Language,Authorization,Connection,Content-Type,Cookie,DNT,Host,Keep-Alive,Origin,Referer,User-Agent,X-CSRF-Token,X-Requested-With"); headers.append("Access-Control-Allow-Credentials","true"); return headers; } getModels(): Observable<any> { return this.http.get(this.restRoot,{ headers: this.authHeaders(),withCredentials: true <- from a similar issue }).map(res => res.json()); } } 我的服务器配置如下: Header set Access-Control-Allow-Origin "http://localhost:4200" Header set Access-Control-Allow-Headers "Accept,X-Requested-With" Header set Access-Control-Allow-Methods "*" Header set Access-Control-Allow-Credentials "true" Header set Access-Control-Expose-Headers "Authorization" <- from a similar issue 我知道还有其他相同/类似的问题.但我仍然不知道该做什么或怎么做. 解决方法
“我的服务器配置如此” – 这大多是无关紧要的.查看错误消息:“预检的响应具有无效的HTTP状态代码401”
它没有说明你在Access-Control-Allow-Thing中提到的任何事情. >浏览器正在发出OPTIONS请求,询问是否允许跨源请求. 由于浏览器未收到发出交叉原始请求的权限:它尚未发送用户名和密码. 您需要在服务器上找到执行授权的代码,并从该测试中排除OPTIONS请求.任何人都应该能够提出OPTIONS请求,而不仅仅是拥有用户名和密码的人. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |