2017-01-19 4 views
0

Я пытаюсь реализовать пост webservice в angular2. Я попытался нажать URL через почтальона и его работу. Но когда я пытаюсь реализовать его в угловом, я не получаю никакого ответа. Ниже мой пример кода:реализация почтового веб-сервиса в ионном 2 с помощью angular2

load(username, password) { 

     console.log(username," ", password); 
     let postData = {"username":username, "password" : password, 
       "userdeviceInfo": [{ 
       "deviceId": "APA91bGUZuKVbqur7Qq2gy2eyomWgXkIU5Jcmmtmgl4IGuzVzwiJVMZgAHj3Bx6yrnW0oEZlEtB9XdcR6AOpKyEMVSWwQ_UIfNX6T0iwq28hnufOhauVdTYZQSWWPAdDrdg58cjnL5T-", 
       "platform":"Android" 
          }]}; 

     //let body= JSON.stringify(postData); 

     //console.log("body---"+body) 

     this.headers = new Headers(); 
      this.headers.append("Content-Type", 'application/json'); 

      this.requestoptions = new RequestOptions({ 
       method: RequestMethod.Post, 
       url: this.url, 
       headers: this.headers, 
       body: JSON.stringify(postData) 
      }) 

    console.log("body---"+this.requestoptions) 

    return this.http.request(new Request(this.requestoptions)) 
       .map((res: Response) => { 
        if (res) { 

         console.log(res.json()); 
         return [{ status: res.status, json: res.json() }]; 
        }}) 
       .subscribe(res => this.data = res); 

ошибка Я ПОЛУЧАТЬ является:

XMLHttpRequest cannot load "MY_URL". Response for preflight has invalid HTTP status code 500 

Я вроде застрял здесь. Может ли кто-нибудь помочь мне найти, где я ошибаюсь?

+0

'Ответ на предполетной имеет недопустимый HTTP код статуса 500' это, вероятно, вопрос CORS –

+0

я обработал вопрос Корс, отключив его –

+0

мой ПОЛУЧАЕТ служба работает нормально –

ответ

0

вот пример POST:

rate(url: string, body: { value: number}) { 
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 

    return this.http.post(url, body, options).toPromise().then(
      response => response.json(), 
      err => err 
); 
} 

Конечно, вы можете удалить toPromise() использовать наблюдаемыми, это для примера приложение :)

надеюсь, что это может помочь вам.

0

Вы можете использовать этот способ, чтобы сделать HTTP POST:

let headers = new Headers(); 
let body = {"username":username, "password" : password, 
       "userdeviceInfo": [{ 
       "deviceId": "APA91bGUZuKVbqur7Qq2gy2eyomWgXkIU5Jcmmtmgl4IGuzVzwiJVMZgAHj3Bx6yrnW0oEZlEtB9XdcR6AOpKyEMVSWwQ_UIfNX6T0iwq28hnufOhauVdTYZQSWWPAdDrdg58cjnL5T-", 
       "platform":"Android" 
          }]}; 

headers.append('content-type', 'application/json'); 
return this.http.post("theurl", '', { 
    body : JSON.stringify(body), 
    headers : headers 
}) 
.map(res => res.json()) 
.subscribe(data=>{ 

}, 
err=>{ 

}, 
()=>{ 

}) 
+0

с той же ошибкой. это имеет какое-то отношение к «корсу», я проверил ... вы можете помочь с «CORS» –

+0

Если это проблема CORS, то установите расширение CORS на вашем браузере Chrome и включите CORS, он будет работать. Или, если вы хотите, чтобы это было обработано в мобильном приложении, должен быть установлен плагин cordova-whitelist, который обрабатывает CORS. По умолчанию последние версии ionic будут включать этот плагин в файле config.xml и создадут приложение вместе с ним. –

+0

Также console.log и проверьте значение this.url перед тем, как сделать запрос POST .. Он бросает 500 ошибка, которая означает внутреннюю ошибку сервера. –

Смежные вопросы