Ioni c HTTP-запрос POST (работает с почтальоном) не работает, но GET работает - PullRequest
0 голосов
/ 03 августа 2020

Я работал с localhost, и мое приложение IONI C почти готово, пока я не решил разместить его на 000webhost. Я загрузил свой Laravel API, который очень базовый c (я использовал промежуточное ПО CORS), а затем, когда я тестировал приложение, запрос GET работал, а POST и PUT - нет.

Примечания:

  • URL-адрес на 100% правильный, потому что я использую его в методе GET
  • Данные 100% совместимы, потому что я тестирую его на Postman, и он работает

Это .http - это служба http:

this.http.getData().subscribe(s => {
    console.log('Get Works');
    this.data = s[0];
    this.http.postData(this.data).subscribe(inf => {
      console.log('Post works');
    }, err => {
        console.log(err)
        console.log('Post dont work');
    })
  })

служба HTTP

postData(data: any) {
  let headers: HttpHeaders = new HttpHeaders();
  headers.append("Access-Control-Allow-Origin", '*');
  headers.append("Access-Control-Allow-Methods", 'POST, GET, OPTIONS, DELETE');
  headers.append("Access-Control-Allow-Headers", '*');
  headers.append('Content-Type', 'application/json');
  headers.append('Accept', 'application/json,text/plain');
  let requestOptions = { headers: headers }
  return this.http.post(url, data)}



 getData() {
let headers: HttpHeaders = new HttpHeaders();
headers.append("Access-Control-Allow-Origin", '*');
headers.append("Access-Control-Allow-Methods", 'POST, GET, OPTIONS, DELETE');
headers.append("Access-Control-Allow-Headers", '*');
headers.append('Content-Type', 'application/json');
headers.append('Accept', 'application/json,text/plain');
let requestOptions = { headers: headers }
return this.http.get(url, requestOptions)}

1

console

решение: по какой-то причине он работает на localhost, но не в 000webhost ... он не принимает запрос тела / строки, возможно, изменение 'content-type' заставит его работать, хотя мой решение использует HttpParams из angular:

postData(data: any) {
let headers: HttpHeaders = new HttpHeaders();
headers.append("Access-Control-Allow-Origin", '*');
headers.append("Access-Control-Allow-Methods", 'POST, GET, OPTIONS, DELETE');
headers.append("Access-Control-Allow-Headers", '*');
headers.append('Content-Type', 'application/json');
headers.append('Accept', 'application/json,text/plain');
const params = new HttpParams()
  .set('type', data.type)
  .set('email', data.email)
  .set('uid', data.uid)
  .set('lat', data.lat)
  .set('lng', data.lng)
  .set('city', data.city)
  .set('municipality', data.municipality)
  .set('subject', data.subject)
  .set('description', data.description)
  .set('image', data.image)
  .set('upvote', data.upvote)
let requestOptions = { headers: headers, params: params }
return this.http.post(url, null, requestOptions)

}

1 Ответ

1 голос
/ 07 августа 2020
return this.http
      .post(url, data, { headers })
...