Javascript 如何将包含对象的正文而不是字符串发布到http api?angular2?
我正在以下服务中使用angular2Javascript 如何将包含对象的正文而不是字符串发布到http api?angular2?,javascript,angular,http,post,Javascript,Angular,Http,Post,我正在以下服务中使用angular2http.post: import {Injectable, Inject} from 'angular2/core' import {Http, Response, RequestOptions, Headers, Request, RequestMethod} from 'angular2/http'; import 'rxjs/add/operator/map'; //Globals const URL : string = 'http://myur
http.post
:
import {Injectable, Inject} from 'angular2/core'
import {Http, Response, RequestOptions, Headers, Request, RequestMethod} from 'angular2/http';
import 'rxjs/add/operator/map';
//Globals
const URL : string = 'http://myurl.com/listings';
@Injectable()
export class ListingsService {
//Constructor
constructor(public http: Http) {}
postListing(data) {
this.http.post(URL, data).map(res => res.json())
}
}
问题是,我只允许在http.post中以字符串形式发布数据,因为我需要在其中传递对象。一种方法是使用JSON.stringify生成对象字符串,然后在服务器端使用JSON.parse。正如binariedMe提到的,JSON.stringify将执行您想要的操作。
如果要发送二进制数据,可能需要查看BSON:可能需要在标头中设置内容类型。您可以按如下方式设置默认标题
class MyOptions extends RequestOptions {
constructor() {
super({
headers: new Headers({
'Content-Type': 'application/json; charset=utf-8',
'Accept': 'application/json'
})
});
}
}
bootstrap(AppComponent, [
...,
provide(RequestOptions, {useClass: MyOptions})
]);