gpt4 book ai didi

post - Angular2/Http (POST) header

转载 作者:太空狗 更新时间:2023-10-29 16:58:26 24 4
gpt4 key购买 nike

我无法在执行 POST 请求时更改 header 。我尝试了几件事:

简单类:

export class HttpService {
constructor(http: Http) {
this._http = http;
}
}

我试过:

testCall() {
let body = JSON.stringify(
{ "username": "test", "password": "abc123" }
)

let headers = new Headers();
headers.append('Content-Type', 'application/json'); // also tried other types to test if its working with other types, but no luck

this._http.post('http://mybackend.local/api/auth', body, {
headers: headers
})
.subscribe(
data => { console.log(data); },
err => { console.log(err); },
{} => { console.log('complete'); }
);
}

2:

testCall() {
let body = JSON.stringify(
{ "username": "test", "password": "abc123" }
)

let headers = new Headers();
headers.append('Content-Type', 'application/json'); // also tried other types to test if its working with other types, but no luck

let options = new RequestOptions({
headers: headers
});

this._http.post('http://mybackend.local/api/auth', body, options)
.subscribe(
data => { console.log(data); },
err => { console.log(err); },
{} => { console.log('complete'); }
);
}

两者都不起作用。我没有忘记导入任何类(class)。

我使用的是谷歌浏览器。所以我检查了“网络”选项卡,我的请求在那里,它说我的内容类型是文本/纯文本。

这是错误还是我做错了什么?

更新我忘了从 Angular2/http 导入 Headers 类:

import {Headers} from 'angular2/http';

最佳答案

我认为您正在以正确的方式使用 Angular2 的 HTTP 支持。请参阅此工作插件:https://plnkr.co/edit/Y777Dup3VnxHjrGSbsr3?p=preview .

也许,您忘记导入 Headers 类。我前段时间犯了这个错误,在 JavaScript 控制台中没有错误,但我尝试设置的 header 实际上并没有设置。例如,关于 Content-Type header ,我有 text/plain 而不是 application/json。您可以通过在导入中评论 Headers 在我提供给您的 plunkr 中重现此内容...

这是一个完整的工作示例(包括导入):

import {Component} from 'angular2/core';
import {Http,Headers} from 'angular2/http';
import 'rxjs/Rx';

@Component({
selector: 'my-app',
template: `
<div (click)="executeHttp()">
Execute HTTP
</div>
`
})
export class AppComponent {
constructor(private http:Http) {

}

createAuthorizationHeader(headers:Headers) {
headers.append('Authorization', 'Basic ' +
btoa('a20e6aca-ee83-44bc-8033-b41f3078c2b6:c199f9c8-0548-4be79655-7ef7d7bf9d20'));
}

executeHttp() {
var headers = new Headers();
this.createAuthorizationHeader(headers);
headers.append('Content-Type', 'application/json');

var content = JSON.stringify({
name: 'my name'
});

return this.http.post(
'https://angular2.apispark.net/v1/companies/', content, {
headers: headers
}).map(res => res.json()).subscribe(
data => { console.log(data); },
err => { console.log(err); }
);
}
}

希望对你有帮助,蒂埃里

关于post - Angular2/Http (POST) header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35032465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com