当前位置: 首页 > 知识库问答 >
问题:

axios为带有表单数据的post请求返回404

史经业
2023-03-14

我正试图通过Axios从Azure AD获取一个包含表单数据的post请求的图形令牌。响应抛出错误请求失败,状态代码为404。下面是代码,

const axios = require('axios')
const FormData = require('form-data')
    
const bodyFormData = new FormData()
    
bodyFormData.append('client_id', <client id>)
bodyFormData.append('client_secret', <secret>)
bodyFormData.append('scope', <scope>)
bodyFormData.append('requested_token_use', <token use>)
bodyFormData.append('assertion', <token>)
    
axios
.post('https://login.microsoftonline.com/<tenantId>/oauth2/v2.0/token', bodyFormData, {
headers: bodyFormData.getHeaders(),
})
.then((response) => {
console.log('AXIOS RESPONSE ', response)
})
.catch((err) => {
console.log('AXIOS ERROR ', err)
})

邮寄请求在邮递员中工作正常。如果从Axios请求中删除了body FormData,则Axios中的响应也符合预期。当body FormData添加到请求时,我遇到一个错误。

AXIOS错误:请求失败,状态代码404

共有2个答案

闾丘才哲
2023-03-14

尝试删除标题部分,它应该工作。

应该没有任何理由必须从FormData对象获取头,因为它是一个API,将使用其他形式的身份验证,并且可能会打乱调用。

这不是可能被某些安全措施阻止的数据抓取调用

蒋飞捷
2023-03-14

而不是使用form-data使用querystring

const axios = require('axios')
const querystring = require('querystring');

const data = querystring.stringify({
    client_id: '<client id>',
    client_secret: '<secret>',
    scope: '<scope>',
    requested_token_use: '<token use>',
    assertion: '<token>'
});

axios.post('https://login.microsoftonline.com/<tenantId>/oauth2/v2.0/token', data)
    .then((response) => {
        console.log('AXIOS RESPONSE ', response)
    })
    .catch((err) => {
        console.log('AXIOS ERROR ', err)
    });
 类似资料:
  • axios请求点击控制器上的url,但将空值设置到POJO类中,当我使用chrome中的开发人员工具时,有效负载包含数据。我做错了什么? Axios POST请求: 浏览器响应: 过帐多部分/表单数据时出错。Content-Type标头缺少边界 谁能解释一下如何设置边界或者我如何使用Axios发送表单数据。

  • 以下API使用postman工作: Spring boot,后端代码: ReactJS,前端代码:我在中有对象数组。 触发功能的按钮: 我需要将我的前端(ReactJS)代码更改为,就像我使用postman发布请求一样。当前JS代码导致以下错误响应: Servlet。路径为[]的上下文中的servlet[dispatcherServlet]的service()引发了异常[请求处理失败;嵌套异常为o

  • 我必须做一个帖子,但我得到错误405 在本网站->http://177.66.89.34:8079/transparencia/#我需要迭代页面顶部的2个下拉菜单的选项。 首先,我会在“escolha o exercício”旁边加上选项:然后,我会在“escolha a entidade”旁边加上选项: 用下面的代码,我在“EscolhaoExercício:”上面写了一篇文章 我希望在pars

  • 我尝试在vue中使用axios post实现注销功能。我将jwt添加到请求头中,但它被视为参数。在另一个函数中,我实现了axios post方法,它可以正常工作。有人能帮忙吗?代码如下: 当我看到网络时,在方法的中有字段,它成功了。但是在方法的中没有字段,在参数中可以找到,它看起来像: 响应表示状态代码为400的错误。

  • 我对Android系统是新手。我想上传图像作为表单数据使用改型后的方法。我正在使用 这是我的请求体。

  • 我有下面的curl请求,我正试图在Scala中实现。 curl-u“username”-x POST“https://post_url.com”-h“content-type:multipart/form-data”-f“xmlrequest=@/home/@file.xml;type=text/xml” 我已经尝试了下面的,但我得到一个坏的请求。