Я пытаюсь добавить заголовки к моей просьбе http
поста, как показано нижеAngularJS2 добавления заголовков HTTP POST не работает
import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions } from '@angular/http';
@Injectable()
export class UserService extends ServiceBase {
apiUrl: string;
private contentHeaders = new Headers();
constructor(private http: Http) {
super();
this.apiUrl = appConfig.apiBaseUrl + '/users';
}
login(user: User) {
this.contentHeaders.append('Accept', 'application/json');
this.contentHeaders.append('Content-Type', 'application/json');
return this.http.post(
this.apiUrl+'/sign_in',
JSON.stringify({user: user}),
{headers: this.contentHeaders}
);
}
}
заголовков, показанных в Chrome DevTools:
OPTIONS /api/v1/users/sign_in HTTP/1.1 Host: offers2win.com Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Access-Control-Request-Method: POST Origin: http://evil.com/ User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 Access-Control-Request-Headers: access-control-allow-credentials, content-type Accept: */* Referer: http://localhost:3000/? Accept-Encoding: gzip, deflate, sdch Accept-Language: en-US,en;q=0.8
Но эти заголовки не видны в инструменте Chrome dev, сетевой панели. Что мне здесь не хватает.
Еще его же. 'Access-Control-Request-Headers: content-type' :( –
Сервер (на который отправляется запрос POST) должен включать заголовок заголовка Access-Control-Allow-Headers (и т. Д.) В свой ответ. запрос от клиента не имеет никакого эффекта. Это связано с тем, что сервер должен указать, что он принимает запросы с кросс-началом (и что он разрешает заголовок запроса Content-Type и т. д.) - клиент не может решить сам, что данный сервер должен разрешить CORS. –
Я установил расширение CORS в Chrome. Тем не менее он не работает. –