简单的例子,它不起作用:
let headers = new Headers();
headers.append('Authorization', 'Test');
let options = new RequestOptions({
headers: headers,
body: {}, //This body empty fix #10668
});
this.http.get('backend url another external domain', options)
.subscribe((res:Response) => {
console.log(res);
});
标题未添加到请求中。
注意到我调用的网址是外部的,内部工作。
为什么标题地图仅在具有相对路径的本地域中发送?
答案 0 :(得分:0)
尝试
let body = JSON.stringify({ dataToSend });
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post('Url', body, options)
.map(this.extractData)
.catch(this.handleError);
}
答案 1 :(得分:0)
这是一个CORS问题。角度
没问题答案 2 :(得分:0)
如果使用JAX-RS,请确保使用标题更新CorsFilter,如下所示
@Provider
public class CORSFilter implements ContainerResponseFilter {
@Override
public void filter(final ContainerRequestContext requestContext,
final ContainerResponseContext cres) throws IOException {
cres.getHeaders().add("Access-Control-Allow-Origin", "*");
cres.getHeaders().add("Access-Control-Allow-Headers", "login, origin, X-Requested-With, content-type, accept, authorization");
cres.getHeaders().add("Access-Control-Allow-Credentials", "true");
cres.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
cres.getHeaders().add("Access-Control-Max-Age", "1209600");
}
}