You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Postman中带Raw body的API请求转换为AJAX请求

错误原因

  • 微软OAuth2令牌接口不支持application/json格式的请求体,仅接受application/x-www-form-urlencoded格式,你当前配置的请求头类型错误。
  • data字段格式错误,不应该将url编码字符串包裹在对象中,也不要保留字符串前后的多余空格。
  • 接口返回的鉴权令牌字段为access_token,你代码中写的data.token无法正确取值。

正确实现方案

方案1:让jQuery自动序列化表单参数(推荐)

不需要手动设置请求头,jQuery会自动处理编码和请求头配置:

$.ajax({
  type: 'POST',
  url: 'https://login.microsoftonline.com/***/oauth2/token',
  data: {
    grant_type: 'client_credentials',
    client_id: '替换为你的client_id',
    client_secret: '替换为你的client_secret',
    resource: 'https://analysis.windows.net/powerbi/api'
  },
  success: (data) => {
    console.log(data.access_token)
  },
  error: (err) => {
    console.log('请求失败', err)
  }
});

方案2:手动拼接url编码字符串

如果你要自己拼接参数,直接传入字符串即可:

$.ajax({
  type: 'POST',
  url: 'https://login.microsoftonline.com/***/oauth2/token',
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  data: "grant_type=client_credentials&client_id=***&client_secret=***&resource=https://analysis.windows.net/powerbi/api",
  success: (data) => {
    console.log(data.access_token)
  },
  error: (err) => {
    console.log('请求失败', err)
  }
});

安全提醒

客户端凭证模式的OAuth2请求需要用到client_secret,直接在前端代码中发送该请求会导致密钥泄露,建议将该请求逻辑迁移到后端服务实现。

内容的提问来源于stack exchange,提问作者Gangrel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:48:00