如何将POS编码为application / x-www-form-urlencoded

时间:2018-01-16 13:39:43

标签: javascript php ajax

嗨,有人可以指导我如何发布编码为application / x-www-form-urlencoded的URL编码

实际上API建议完成如下:注意:我有所有需要在url中POST的变量。我只是无法弄清楚如何正确发布它的方式提前谢谢。

用户登录并获得他们的许可后,Envato API会在提供的确认URL上将其重定向回您的应用程序,并在查询字符串中提供一次性身份验证代码(例如http://your.app/callback?code=abc123.. )。您必须使用此代码从API请求访问令牌,方法是从服务器发送以下POST请求(编码为application / x-www-form-urlencoded),将[CODE]替换为您刚刚编写的代码收到,[CLIENT_SECRET]使用您的秘密应用程序密钥,并根据需要填写其他字段:

POST https://api.envato.com/token
     grant_type=authorization_code&
     code=[CODE]&
     client_id=[CLIENT_ID]&
     client_secret=[CLIENT_SECRET]

服务器将使用访问令牌进行响应:

{
  "refresh_token": "GBdxWsxo1CqAK9yCneH75wgkXw1q7bio",
  "token_type": "bearer",
  "access_token": "c0lQ2WLYW9qAZ9RH12cH1fJPzVWSscXP",
  "expires_in": 3600
}

那么我们如何发布URL并获得所需的响应。谢谢。

1 个答案:

答案 0 :(得分:0)

首先,您必须提取回调的查询参数:

let params = {}; location.search.substring(1).split('&').forEach(v => { params[v.split('=')[0]] = decodeURI(v.split('=')[1]);}) ;

然后,使用您最喜欢的api进行ajax调用,然后执行:

let client_id = 'your_awesome_client_id_param';
let client_secret = 'your_amazing_client_secret_param';
fetch('https://api.envato.com/token', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    },
    body: `grant_type=authorization_code&code=${params.code}&client_id=${clientId}&client_secret=${clientSecret}`
})
.then(r => return r.json())
.then(data => console.log(data))