TypeScriptでHTTPポストリクエストの例を見つけようとしていますが、Angularを使用した例しか見つけることができません。誰かがこれを見つけるために私を正しい方向に向けるか、JSONデータでPostを使用して応答JSONを取得する簡単な例をここに投稿できますか?.
HTTP POSTリクエストにTypeScriptでネイティブJavaScript関数を使用する場合は、 [〜#〜] json [〜#〜]をご覧ください。 YouMightNotNeedJQuery.comでの および [〜#〜] post [〜#〜] の例。独自の実装:
// Using callbacks:
function request<Request, Response>(
method: 'GET' | 'POST',
url: string,
content?: Request,
callback?: (response: Response) => void,
errorCallback?: (err: any) => void) {
const request = new XMLHttpRequest();
request.open(method, url, true);
request.onload = function () {
if (this.status >= 200 && this.status < 400) {
// Success!
const data = JSON.parse(this.response) as Response;
callback && callback(data);
} else {
// We reached our target server, but it returned an error
}
};
request.onerror = function (err) {
// There was a connection error of some sort
errorCallback && errorCallback(err);
};
if (method === 'POST') {
request.setRequestHeader(
'Content-Type',
'application/x-www-form-urlencoded; charset=UTF-8');
}
request.send(content);
}
// Using promises:
function request2<Request, Response>(
method: 'GET' | 'POST',
url: string,
content?: Request
): Promise<Response> {
return new Promise<Response>((resolve, reject) => {
request(method, url, content, resolve, reject);
});
}
XMLHttpRequest
は組み込みJavaScriptクラスであり、TypeScriptの型付けに含まれています。
GETまたはPOST TypeScriptのみで呼び出す非常に簡単な例を次に示します。
//-------------------------------------------------
// Simple function to GET or POST
function httpCall(method: string, url:string, data:any, callback:(result:any)=>any) {
var xhr = new XMLHttpRequest();
xhr.open(method, url, true);
if (callback) xhr.onload = function() { callback(JSON.parse(this['responseText'])); };
if (data != null) {
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify(data));
}
else xhr.send();
}
オプションの入力データ(投稿本文)とコールバック。データと結果は両方ともJSONであると想定されます。
フォームデータの送信。
Save(model: yourmodalarray[]): Observable<any> {
var formData: FormData = new FormData();
formData.append('id', '');
const headers = new Headers({
'Accept': 'application/json',
'enctype': 'multipart/form-data'
});
const options = new RequestOptions({ headers: headers });
return this._http
.post(this._baseUrl + 'Save', formData, options)
.map(res => <any>res.json())
.catch(this.handleError);
}