首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有基本安全授权的角2调用API

具有基本安全授权的角2调用API
EN

Stack Overflow用户
提问于 2017-05-22 13:03:16
回答 1查看 2.3K关注 0票数 4

我正在尝试调用一个HTTP方法,该方法是从一个Range2客户端用ASP.WebAPI实现的。我得到了一个错误:

选项http://endpoint/api/Get?key=something 401 (未经授权) XMLHttpRequest无法加载http://endpoint/api/Get?key=something。对飞行前请求的响应不会通过访问控制检查:请求的资源上没有“访问-控制-允许-原产地”标题。因此,“http://localhost:4200”源是不允许访问的。响应具有HTTP状态代码401。

下面是我的实现,当我禁用IIS服务器上的基本身份验证时,它工作得很好:

代码语言:javascript
复制
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import 'rxjs/add/operator/map'
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { Entity } from "app/view-models/entity";

@Injectable()
export class HttpService {
    headers;
    options;
    constructor(private _http: Http) {
        this.headers = new Headers();
        this.headers.append('Authorization', 'Basic ' + btoa('username:password'));
        this.headers.append("Access-Control-Allow-Credentials", "true");
        this.headers.append('Content-Type', 'application/x-www-form-urlencoded');
        this.options = new RequestOptions();
        this.options = new RequestOptions({ headers: new Headers(this.headers) });
    }

    public Get = (): Observable<Entity> => {
        var params = '?key=something';
        return this._http.get(environment.apiBaseUrl + environment.getSettings + params
            , this.options)
            .map(response => <Entity>response.json());
    }   
}
EN

回答 1

Stack Overflow用户

发布于 2017-05-22 15:42:43

这看起来更像是CORS错误,而不是角/类型记录错误。您正在尝试从"localhost“过渡到”终结点“。您必须配置端点服务以允许来自此域的请求。

https://learn.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44113628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档