簡體   English   中英

如何使用axios發送對象?

[英]How can I send an object using axios?

有沒有辦法使用axios將對象發送到API?

這是我使用的代碼:

axios.get('/api/phones/create/', {
    parameters: {
        phone: this.phone
    }
})
    .then(response => {
        console.log(response.data)
    })
    .catch(function (error) {
        console.log(error)
    })

在PHP方面,我有以下內容:

public function create($phone)
{
    return $phone;
}

我收到以下錯誤:

GET http://crm2.dev/api/phones/create 500 (Internal Server Error)
dispatchXhrRequest @ app.6007af59798a7b58ff81.js:256
xhrAdapter @ app.6007af59798a7b58ff81.js:93
dispatchRequest @ app.6007af59798a7b58ff81.js:662
app.6007af59798a7b58ff81.js:2266 Error: Request failed with status code 500
    at createError (app.6007af59798a7b58ff81.js:600)
    at settle (app.6007af59798a7b58ff81.js:742)
    at XMLHttpRequest.handleLoad (app.6007af59798a7b58ff81.js:158)

如果我試試, axios.get('/api/phones/create/hello')我在控制台日志中hello

有沒有辦法做到這一點?

這取決於“發送對象”的含義。

由於您正在使用GET請求並在參數中傳遞對象,因此您可以將其序列化為查詢參數,作為GET請求的一部分。 這不會真正發送對象,而是使用它來構建GET請求的URL的查詢部分。

例如,以下是如何向/api/phones/create?phone=123發出請求:

axios.get('/api/phones/create/', {
    params: {
        phone: '123'
    }
})

如果您希望將對象實際作為序列化JSON發送到API,則可以使用POST或PUT請求,具體取決於API的語義。

例如,要將{ "phone": "123" }發送到您的api,您可以執行以下操作:

axios.post('/api/phones/create/', {
  phone: '123'
});

:Axios公司預計關鍵params的參數。

首先嘗試使用params而不是parameters

如果您想支持舊瀏覽器, Axios依賴於您可能需要向您的代碼添加promise polyfill的承諾

以下是樣本請求,閱讀官方文檔以獲取更多信息。

axios.get('/url', {
    firstName: 'Fred',
    lastName: 'Flintstone'
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM