如何使用 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
。
有办法吗?
这取决于你"send an object"的意思。
由于您正在使用 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 依赖于 promises 如果您想支持旧浏览器,您可能需要 add promise polyfill 修改您的代码。
这是示例请求,阅读 official docs 了解更多信息。
axios.get('/url', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
有没有办法使用 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
。
有办法吗?
这取决于你"send an object"的意思。
由于您正在使用 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 依赖于 promises 如果您想支持旧浏览器,您可能需要 add promise polyfill 修改您的代码。
这是示例请求,阅读 official docs 了解更多信息。
axios.get('/url', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});