J'essaie de trouver un exemple de demande de publication HTTP dans TypeScript, mais je ne trouve que des exemples utilisant Angular. Quelqu'un pourrait-il m'orienter dans la bonne direction pour trouver cela ou publier un exemple rapide ici d'utiliser Post avec des données JSON pour obtenir une réponse JSON.
Si vous souhaitez utiliser des fonctions JavaScript natives dans TypeScript pour votre requête HTTP POST, jetez un œil à la JSON et - POSTER exemples sur YouMightNotNeedJQuery.com. En utilisant cela, vous pouvez implémenter le vôtre:
// 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
est une classe JavaScript intégrée et incluse dans les typages TypeScript.
Voici mon exemple très simple pour appeler GET ou POST avec TypeScript uniquement.
//-------------------------------------------------
// 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();
}
Données d'entrée facultatives (le corps du message) et rappel. Les données et le résultat sont supposés être JSON.
Envoi des données du formulaire.
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);
}