HTTP post запрос не работает внутри ионного приложения, но тот же почтовый запрос работает в почтальоне - PullRequest
0 голосов
/ 04 мая 2019

Я пытаюсь сделать приложение в ionic v3 внутри visual studio (Инструменты для apache cordova).На одном из экранов приложения я беру информацию от пользователя и отправляю ее в API.Проблема в том, что отправленный мной http-запрос работает неправильно.Если я сделаю такой же запрос от почтальона, он будет работать, а не со страницы моего приложения

Я перепробовал все ответы, которые я смог найти, но ни один не помог мне.Я попытался добавить заголовок изменения, который я передаю с запросом (передавая 'user-agent')

 let header = new Headers({
   'Content-Type': 'application/json; charset=utf-8',
   'Authorization': 'console',
   'MacAddress': localStorage.getItem('macAddress'),
   'Key': localStorage.getItem('key'),
   'access-control-allow-origin': '*',
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'
 });
 let data = JSON.stringify({
   FirstName: this.FirstName,
   LastName: this.LastName,
   MI: this.u_mname,
   Address: this.Address,
   City: this.City,
   State: this.State,
   ZipCode: this.ZipCode,
   HomePhone: this.HomePhone,
   OfficePhone: this.OfficePhone,
   OfficePhoneExt: this.OfficePhoneExt,
   CellPhone: this.CellPhone,
   Fax: this.Fax,
   Email1: this.Email1,
   Email2: this.Email2,
   ContactTypeId: this.ContactTypeId,
   dob: this.dob,
   ApplicationId: this.ApplicationId
 });

 this.http.post(localStorage.getItem('base_url') + '/services/odata/tblContacts?Mother=0&Father=0&Guardian=0&groupIdList=0', data, { headers: header})
   .map(res => console.log(res))
   .subscribe(
      data => {
       alert(data)
     }, err => {
       alert(err)
     })

Я ожидал, что ответ должен быть "http status code 201", но я получаю код состояния 200 и сообщение "Внутренняя ошибка сервера.Пожалуйста, смотрите подробности в журналах сервера. '

1 Ответ

0 голосов
/ 04 мая 2019

Вы можете попробовать вот так.

public httpOptions;

this.httpOptions = {
      headers: new HttpHeaders({ 
   'Content-Type': 'application/json; charset=utf-8',
   'Authorization': 'console',
   'MacAddress': localStorage.getItem('macAddress'),
   'Key': localStorage.getItem('key'),
   'access-control-allow-origin': '*',
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'
   })
    };

 let data = JSON.stringify({
   FirstName: this.FirstName,
   LastName: this.LastName,
   MI: this.u_mname,
   Address: this.Address,
   City: this.City,
   State: this.State,
   ZipCode: this.ZipCode,
   HomePhone: this.HomePhone,
   OfficePhone: this.OfficePhone,
   OfficePhoneExt: this.OfficePhoneExt,
   CellPhone: this.CellPhone,
   Fax: this.Fax,
   Email1: this.Email1,
   Email2: this.Email2,
   ContactTypeId: this.ContactTypeId,
   dob: this.dob,
   ApplicationId: this.ApplicationId
 });

 this.http.post(
  localStorage.getItem('base_url') + '/services/odata/tblContacts?Mother=0&Father=0&Guardian=0&groupIdList=0', 
data,
httpOptions
}).map(res => console.log(res))
  .subscribe(
     data => {
       alert(data)
     }, err => {
       alert(err)
     })
...