asp.net 在reactjs中使用superagent删除

tpgth1q7  于 5个月前  发布在  .NET
关注(0)|答案(2)|浏览(61)

我只是好奇我应该如何在超级代理中使用delete,很难搜索任何删除超级代理文档我目前使用asp.net作为我的API和reactjs作为前端我有这个按钮:

<td><center><button className ="btn btn-danger" onClick={this.deleteEmployee.bind(this,  d.Employee_ID)}>Delete</button></center></td>

字符串
我将如何使用fetch在超级代理上连接它?我使用本地主机:

http://localhost:5118/api/employeedetails/DeleteEmployeeDetail/

trnvg8h3

trnvg8h31#

使用del()请参阅documentation
为了与旧的IE兼容,也可以将其称为.del(),其中delete是保留字。
npm install superagent

var request = require('superagent');

deleteEmployee(id) {
    request
       .del('/api/employeedetails/DeleteEmployeeDetail')
       .send({ id: id })
       .set('Accept', 'application/json')
       .end(function(err, res){});
}

字符串

w8f9ii69

w8f9ii692#

  • 如果直接使用删除请求,可能会出现405错误 *。

例如,您可能有这样一个端点

Route::middleware('auth:api')->delete('/orders/{id}', 'ApiController@destroyOrder');

字符串
然后使用超级代理发出删除请求,如下所示

superagent
  .del(`${process.env.BASE_URL}/api/orders/${params.id}`)
  .send(body)
  .set('Content-Type', 'application/json')
  .set('Authorization', `Bearer ${process.env.API_TOKEN_SECRET}`)
  .then(response => {})
  .catch(error => {})


然后得到这样的响应:“此路由不支持GET方法”

为了解决这个问题,这里有一个替代方案:

superagent
  .post(`${process.env.BASE_URL}/api/orders/${params.id}`)
  .send({ _method: "DELETE" })
  .set('Content-Type', 'application/json')
  .set('Authorization', `Bearer ${process.env.API_TOKEN_SECRET}`)
  .then(response => {})
  .catch(error => {})

相关问题