HTTP put request error


(Edwin Mhoy Silva) #1

I’m having some issues with put request to my discourse from the api.
I can make, post and get request, but when I try to make a put request it doesn’t work.
My put request works, when I have the GOOGLE CORS extension on.

I am making api call from Angular localhost:4200.
I enable CORS inside the discourse management, which work fine with my other request, just not for my put request.

This is my error:

This is the header which I use


And this is my method, which does not work when I don’t use the google chrome extension

  addAboutCompetition(postId, dataForm) {

    const competitionForm = dataForm.value;
    const prize = competitionForm.competitionPrize;
    const description = competitionForm.competitionDescription;
    const endDate = competitionForm.competitionEndDate;
    console.log(endDate);
    const aboutText = '|type|normal|type| |endeDate|' + endDate + '|endeDate| |winner|false-/-null-/-none-/-avatar-/' +
      '-name-/-username|winner||price|' + prize + '-/p/-|price|' +
      '|text|<br><strong>UDFORDRINGEN</strong><br>' + description + '|text|';

    const data = new FormData();
    data.append('api_key', WLIApiKey);
    data.append('api_username', WLIUsername);
    data.append('post[raw]', aboutText);

    return this.http.put(url + '/posts/' + postId, data, {
      headers
    });
  }

I think it has something to do with my header maybe ?


(Richard - DiscourseHosting.com) #3

This is fixed by this commit made on Sept 17:

which is not available on Discourse stable yet.


(Edwin Mhoy Silva) #4

Thanks for the @RGJ. This seems to be the problem I’m facing.


(Jeff Atwood) #5

Simply update to latest and you’ll be good.


(Edwin Mhoy Silva) #6

Is the latest stable yet?


(Jeff Atwood) #7

Latest is always stable :muscle: