【问题标题】:Ajax Post Api Call respond bad requestAjax Post Api Call 响应错误请求
【发布时间】:2018-09-20 09:57:56
【问题描述】:

我正在尝试在 Ajax 中进行 API 调用,这里是:

    $.ajax({
    method: "POST",
    url: "https://login.salesforce.com/services/oauth2/token",
    crossDomain: true,
    data: "grant_type=password" +
      "&client_id=" + CLIENTID +
      "&client_secret=" + CLIENTSECRET +
      "&username=" + USERNAME +
      "&password=" + PASSWORD,
    dataType: 'jsonp',
    success: function (data) {
        console.log(data);
    },
    error: function (err) {
        console.log(err);
    }
});

但是当我尝试它时,我得到了一个控制台错误:

jquery.min.js:2 获取 https://login.salesforce.com/services/oauth2/token?callback=jQuery33100... net::ERR_ABORTED 400(错误请求)

我做错了什么?我在邮递员中尝试了相同的信息,我得到了状态 200

【问题讨论】:

  • 哦,等等...... JSONP 意味着请求将是一个GET - 因为这就是 JSONP 的工作方式 - 所以,你绝对不是 POSTing(检查浏览器控制台请求的方法)
  • 我不确定他是否理解,我可以压制它吗?
  • 引用是我把它放在stackoverflow中的,抱歉我编辑了它

标签: javascript api salesforce


【解决方案1】:

我用邮递员做了一个简单的帖子,它给我带来了无效的 client_id(这是正确的,因为我没有指定它)。

这是我的帖子: https://login.salesforce.com/services/oauth2/token?grant_type=password

尝试只发送 grant_type=password 看看会发生什么。如果它没有返回错误的请求,那么参数应该有问题。如果它返回错误的请求,那么您的发布语法有问题。

希望能给你一个方向

【讨论】:

  • 我只尝试了 grant_type 密码,但得到了确切的错误,就像在 cmets 中所说的那样,它可能来自 callback=jQuery...
  • dataType: 'jsonp', 有效地将请求更改为 GET - 请参阅 stackoverflow.com/questions/4508198/…
  • 哦,我明白了,非常感谢,您认为有一种方法可以在没有 dataType: 'jsonp' 的情况下进行跨域请求吗?
  • 是的 - 有几种方法 - 一种取决于允许它的服务器,另一种是使用您自己的服务器来“代理”请求
  • 哦,谢谢你,我会搜索你的第二个提议:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 2016-05-24
  • 2021-01-07
  • 2017-02-17
相关资源
最近更新 更多