简体   繁体   中英

Angular HTTP POST request doesn't create anything

I'm using Angular with PHP and trying to post an object. Request status is 200, but $_POST array is empty. Data I'm sending is a valid JSON Object.

sendTweet(){
    if(!this.username || !this.tweet){
      alert("Enter username or tweet");
      return;
    }
    const newTweet:Tweet = {
      username: this.username,
      tweet: this.tweet
    }
    //Call Service
    this.testService.postTweet(newTweet).subscribe((response)=>{console.log(response)},
    (err:any)=>{
      console.log(err.message);
    });

  }
const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type': 'application/json'
  })
};
postTweet(tweet:Tweet):Observable<Tweet>{
    const url = `${this.apiUrl}/?page=submit&action=add`;
    return this.http.post<Tweet>(url,tweet, httpOptions);
  }

PHP:

if (isset($_POST['tweet'])&&isset($_POST['username'])) {
            //Sending tweet to the db
        } else{
   print_r($_POST);
}

i dont know if its a backend problem with php but in my project i have it a little bit diferent (i am using .net core for backend) for example in my project:

//service component WebScrapLinkService
get(): Observable<Any[]> {
    return this.http.get<Any[]>(this.url)
    .pipe(map(res => res));
  }
//main component
getRegisters() {
    this.getProductsSub = this.crudService.get()
      .subscribe(data => {
        this.registers = data;
      })
  }
//variables
public registers: Array<object> = [];
//the service goes in the constructor
private crudService: WebScrapLinkService

this works fine for me, i hope it is useful for you

It was just me not knowing that in PHP you have to parse HTTP_RAW_POST_DATA in order to get the data.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM