我在以下服务中使用angular2 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
内以字符串形式发布数据,因为我需要传入一个Object。
答案 0 :(得分:5)
这样做的一种方法是使用JSON.stringify创建一个对象字符串,然后在服务器端使用JSON.parse。
答案 1 :(得分:1)
您可能需要在标题中设置Content-Type。您可以按如下方式设置默认标头。
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})
]);
答案 2 :(得分:0)
正如binariedMe所提到的,JSON.stringify会做你想要的。 如果您想发送二进制数据,可能需要查看BSON:https://github.com/mongodb/js-bson