Menempatkan permintaan dengan string sederhana sebagai badan permintaan

Ketika saya mengeksekusi kode berikut dari browser saya, server memberi saya 400 dan mengeluh bahwa badan permintaan tidak ada. Adakah yang punya petunjuk tentang bagaimana saya bisa mengoper string sederhana dan mengirimkannya sebagai badan permintaan?

 let content = 'Hello world' 
 axios.put(url, content).then(response => {
    resolve(response.data.content)
  }, response => {
    this.handleEditError(response)
  })

Jika saya membungkus konten dalam [], konten itu akan terkirim. Tetapi kemudian server menerimanya sebagai string yang diawali dengan [ dan diakhiri dengan ]. Yang tampaknya aneh.

Setelah mengutak-atik, saya menemukan bahwa yang berikut ini berfungsi

  let req = {
    url,
    method: 'PUT',
    data: content
  }
  axios(req).then(response => {
    resolve(response.data.content)
  }, response => {
    this.handleEditError(response)
  })

Tetapi bukankah seharusnya yang pertama juga berfungsi?

Ini bekerja untuk saya (kode yang dipanggil dari repl node js):

const axios = require("axios");

axios
    .put(
        "http://localhost:4000/api/token", 
        "mytoken", 
        {headers: {"Content-Type": "text/plain"}}
    )
    .then(r => console.log(r.status))
    .catch(e => console.log(e));

Log: 200

Dan ini adalah penangan permintaan saya (saya menggunakan restify):

function handleToken(req, res) {
    if(typeof req.body === "string" && req.body.length > 3) {
        res.send(200);
    } else {
        res.send(400);
    }
}

Header Content-Type penting di sini.

Komentar (0)

Sudahkah Anda mencoba yang berikut ini:

axios.post('/save', { firstName: 'Marlon', lastName: 'Bernardes' })
    .then(function(response){
        console.log('saved successfully')
});

Referensi: http://codeheaven.io/how-to-use-axios-as-your-http-client/

Komentar (1)

axios.put(url,{body},{headers:{}})

contoh:

const body = {title: "what!"}
const api = {
  apikey: "safhjsdflajksdfh",
  Authorization: "Basic bwejdkfhasjk"
}

axios.put('https://api.xxx.net/xx', body, {headers: api})
Komentar (3)