Post 'x-www-form-urlencoded' content with aurelia-fetch-client

后端 未结 2 734
眼角桃花
眼角桃花 2021-01-14 12:37

The question is simple: how do I post x-www-form-urlencoded content with Aurelia Fetch client?

I need to make the post to a simple ASP.NET Web API serve

相关标签:
2条回答
  • 2021-01-14 12:48

    You would use FormData like this:

    function sendForm() {
      var formData = new FormData();
      formData.append('email', 'test@test.com');
      formData.append('password', '123456');
    
      http.post(url, formData);
    }
    
    0 讨论(0)
  • 2021-01-14 12:50

    The aurelia-fetch-client is built on Fetch specification, and it seems that Fetch always sends FormData as Content-Type: multipart/form-data.

    To get around this, you have to convert the parameters to a query string and then set the content-type to x-www-form-urlenconed. You can use jQuery or a custom function to convert the object to a query string. Like this:

    //jQuery.param returns something like ?param=1&param2=2 and so on
    //params = a plain javascript object that contains the parameters to be sent
    this.http.fetch(url, {
      body: $.param(params),
      method: 'post',
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
      }
    })
    .then(response => response.json())
    .then(response => { 
       //your magic here
    });
    

    Not a good solution, I know, but that's the easiest way I found so far.

    0 讨论(0)
提交回复
热议问题