64 lines
No EOL
1.4 KiB
Markdown
64 lines
No EOL
1.4 KiB
Markdown
Using form-urlencoded
|
|
https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch
|
|
|
|
```js
|
|
const requestBody = new URLSearchParams({
|
|
client_id: clientId,
|
|
client_secret: clientSecret,
|
|
code: code,
|
|
grant_type: "authorization_code",
|
|
});
|
|
|
|
fetch(apiUrl, {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
},
|
|
body: requestBody,
|
|
})
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
// Handle the response data here
|
|
console.log(data);
|
|
})
|
|
.catch(error => {
|
|
// Handle errors here
|
|
console.error("Error:", error);
|
|
});
|
|
```
|
|
|
|
Curl equivalent
|
|
```bash
|
|
curl -i -X POST "https://api.box.com/oauth2/token" \
|
|
-H "content-type: application/x-www-form-urlencoded" \
|
|
-d "client_id=[CLIENT_ID]" \
|
|
-d "client_secret=[CLIENT_SECRET]" \
|
|
-d "code=[CODE]" \
|
|
-d "grant_type=authorization_code"
|
|
|
|
```
|
|
|
|
2nd method
|
|
```js
|
|
var details = {
|
|
'userName': 'test@gmail.com',
|
|
'password': 'Password!',
|
|
'grant_type': 'password'
|
|
};
|
|
|
|
var formBody = [];
|
|
for (var property in details) {
|
|
var encodedKey = encodeURIComponent(property);
|
|
var encodedValue = encodeURIComponent(details[property]);
|
|
formBody.push(encodedKey + "=" + encodedValue);
|
|
}
|
|
formBody = formBody.join("&");
|
|
|
|
fetch('https://example.com/login', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
|
|
},
|
|
body: formBody
|
|
})
|
|
``` |