2017-05-25 1 views
-1

Es ist ein GesuchAnfrage an Angular 2 und Typ Script

var settings = { 
    "async": true, 
    "crossDomain": true, 
    "url": "http://localhost:32001/api/job/jobs-list-excel", 
    "method": "POST", 
    "headers": { 
    "content-type": "application/json", 
    "cache-control": "no-cache", 
    "postman-token": "9135e481-df69-b870-4f72-92873c1fd7de" 
    }, 
    "processData": false, 
    "data": "{\"jobIds\": [2,3]}" 
} 

$.ajax(settings).done(function (response) { 
    console.log(response); 
}); 

ich es zu tun in Angular 2, aber sie arbeiten nicht, warum? In der Anfrage muss ich die Liste der Artikel-IDs übertragen. Und im Gegenzug, holen Sie sich die XLS-Datei, aber ich kann es nicht tun. Ich hatte eine Post-Anforderung, aber ich kann es nicht übersetzen in ein Schräg

public GetJobsListExcel(jobs: JobViewModel[]): Promise<Result> { 
     var JobIds: number[] = []; 
     var headers = new Headers(); 
     headers.append('Content-Type', 'application/json') 
     jobs.forEach(x => JobIds.push(x.JobId)); 

     return this.http.post(this.jobsUrl + "/jobs-list-excel", 
      { 
       jobIds: JobIds, 
      }, 
      { 
       headers: headers 
      }) 
      .toPromise() 
      .then(response => response.json() as Result); 
    } 
+3

Daten senden als 'JSON.stringify ({jobIds: JobIds})' gleiche wie Sie es in Ihrer Post Anfrage oben senden . – Manish

+0

Was ist dann innerhalb der letzten Antwort? Kannst du 'console.log (response)' sagen und das Ergebnis melden? Stellen Sie auch den Ablehnungshandler und console.log() dort auch. Ändern Sie '.then (response => response.json() als Ergebnis);' to '.then (response => console.log (response), err => console.log (err));' und dann können Sie berichten zurück. Ich sehe nicht, dass Sie den Token in 'headers' setzen ->' "postman-token": "9135e481-df69-b870-4f72-92873c1fd7de" ' – codtex

Antwort

0
import {Headers, RequestOptions} from 'angular2/http'; 

    let body = JSON.stringify({ 'jobIds': '[2,3]' }); 
    let headers = new Headers({ 'Content-Type': 'application/json' },{'cache-control':'no-cache'},{'postman-token':'9135e481-df69-b870-4f72-92873c1fd7de'}); 
    let options = new RequestOptions({ headers: headers }); 
    let url = 'http://localhost:32001/api/job/jobs-list-excel'; 

    return this.http.post(url, body, options) 
        .map(res => res.json().data) 
        .catch(this.handleError)