相关疑难解决方法(0)

http post - 如何发送Authorization标头?

如何在Angular2 RC6中为您的http请求添加标头?我得到以下代码:

login(login: String, password: String): Observable<boolean> {
    console.log(login);
    console.log(password);
    this.cookieService.removeAll();
    let headers = new Headers();
    headers.append("Authorization","Basic YW5ndWxhci13YXJlaG91c2Utc2VydmljZXM6MTIzNDU2");
    this.http.post(AUTHENTICATION_ENDPOINT + "?grant_type=password&scope=trust&username=" + login + "&password=" + password, null, {headers: headers}).subscribe(response => {
      console.log(response);
    });
    //some return
}
Run Code Online (Sandbox Code Playgroud)

问题是,angular不会添加Authorization标头.而不是那样,在请求中我可以看到以下附加标题:

Access-Control-Request-Headers:authorization
Access-Control-Request-Method:POST
Run Code Online (Sandbox Code Playgroud)

并在Accept-Encoding中添加了sdch:

Accept-Encoding:gzip, deflate, sdch
Run Code Online (Sandbox Code Playgroud)

不幸的是,没有授权标头.我该如何正确添加?

我的代码发送的整个请求如下:

OPTIONS /oauth/token?grant_type=password&scope=trust&username=asdf&password=asdf HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Access-Control-Request-Method: POST
Origin: http://localhost:3002
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
Access-Control-Request-Headers: authorization
Accept: */*
Referer: …
Run Code Online (Sandbox Code Playgroud)

authentication rest http typescript angular

43
推荐指数
4
解决办法
12万
查看次数

预检的响应具有无效的HTTP状态代码401 - Spring

大家.我是Angular 2和Spring Framework的新手.我正在尝试使用授权标头(基本身份验证)的简单获取请求.

我正在使用Spring Boot(1.2.6.RELEASE),这也是相关的.我的CORS配置如下所示.

@Component
public class SimpleCorsFilter implements Filter {

private final Logger log = LoggerFactory.getLogger(SimpleCorsFilter.class);

public SimpleCorsFilter() {
    log.info("SimpleCORSFilter init");
}

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;

    response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
    response.setHeader("Access-Control-Allow-Credentials", "true");
    response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT");
    response.setHeader("Access-Control-Max-Age", "3600");
    response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me, authorization, x-auth-token");

    chain.doFilter(req, res);
}

@Override
public void init(FilterConfig filterConfig) {
}

@Override
public void destroy() …
Run Code Online (Sandbox Code Playgroud)

java spring cors angular

12
推荐指数
3
解决办法
9404
查看次数

标签 统计

angular ×2

authentication ×1

cors ×1

http ×1

java ×1

rest ×1

spring ×1

typescript ×1