POST request works with AJAX but not with fetch











up vote
0
down vote

favorite
1












I need to make a post call to get a token. I wanted to use fetch but I keep getting a 500 error. (jquery ajax request worked fine, but I am using react and I want to avoid installing jquery just for this). What is the difference here?



AJAX (works fine, I get a token back)



  var settings = {
"async": false,
"crossDomain": true,
"url": "https://api.com/oauth2/token",
"method": "POST",
"headers": {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Postman-Token": "postmantoken"
},
"data": {
"client_id": clientId,
"client_secret": clientSecret,
"grant_type": "password",
"username": username,
"password": password,
}
}
$.ajax(settings).done(function (response) {
aTkn = response.access_token;
});
return aTkn;


Fetch: get a 500 error : {error: "invalid_request", error_description: "Object reference not set to an instance of an object."} error: "invalid_request" error_description: "Object reference not set to an instance of an object."



    fetch("https://api.com/oauth2/token", {
crossDomain:true,
method: 'post',
headers: { "Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Postman-Token": postmantoken},
body:{
"client_id": clientId,
"client_secret": clientSecreet,
"grant_type": "password",
"username": username,
"password": password,
}
}).then((data)=>{debugger})









share|improve this question
























  • What's the error you're getting?
    – chrisg86
    Nov 21 at 18:48






  • 1




    body: JSON.stringify(data) Using Fetch API
    – devserkan
    Nov 21 at 18:50















up vote
0
down vote

favorite
1












I need to make a post call to get a token. I wanted to use fetch but I keep getting a 500 error. (jquery ajax request worked fine, but I am using react and I want to avoid installing jquery just for this). What is the difference here?



AJAX (works fine, I get a token back)



  var settings = {
"async": false,
"crossDomain": true,
"url": "https://api.com/oauth2/token",
"method": "POST",
"headers": {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Postman-Token": "postmantoken"
},
"data": {
"client_id": clientId,
"client_secret": clientSecret,
"grant_type": "password",
"username": username,
"password": password,
}
}
$.ajax(settings).done(function (response) {
aTkn = response.access_token;
});
return aTkn;


Fetch: get a 500 error : {error: "invalid_request", error_description: "Object reference not set to an instance of an object."} error: "invalid_request" error_description: "Object reference not set to an instance of an object."



    fetch("https://api.com/oauth2/token", {
crossDomain:true,
method: 'post',
headers: { "Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Postman-Token": postmantoken},
body:{
"client_id": clientId,
"client_secret": clientSecreet,
"grant_type": "password",
"username": username,
"password": password,
}
}).then((data)=>{debugger})









share|improve this question
























  • What's the error you're getting?
    – chrisg86
    Nov 21 at 18:48






  • 1




    body: JSON.stringify(data) Using Fetch API
    – devserkan
    Nov 21 at 18:50













up vote
0
down vote

favorite
1









up vote
0
down vote

favorite
1






1





I need to make a post call to get a token. I wanted to use fetch but I keep getting a 500 error. (jquery ajax request worked fine, but I am using react and I want to avoid installing jquery just for this). What is the difference here?



AJAX (works fine, I get a token back)



  var settings = {
"async": false,
"crossDomain": true,
"url": "https://api.com/oauth2/token",
"method": "POST",
"headers": {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Postman-Token": "postmantoken"
},
"data": {
"client_id": clientId,
"client_secret": clientSecret,
"grant_type": "password",
"username": username,
"password": password,
}
}
$.ajax(settings).done(function (response) {
aTkn = response.access_token;
});
return aTkn;


Fetch: get a 500 error : {error: "invalid_request", error_description: "Object reference not set to an instance of an object."} error: "invalid_request" error_description: "Object reference not set to an instance of an object."



    fetch("https://api.com/oauth2/token", {
crossDomain:true,
method: 'post',
headers: { "Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Postman-Token": postmantoken},
body:{
"client_id": clientId,
"client_secret": clientSecreet,
"grant_type": "password",
"username": username,
"password": password,
}
}).then((data)=>{debugger})









share|improve this question















I need to make a post call to get a token. I wanted to use fetch but I keep getting a 500 error. (jquery ajax request worked fine, but I am using react and I want to avoid installing jquery just for this). What is the difference here?



AJAX (works fine, I get a token back)



  var settings = {
"async": false,
"crossDomain": true,
"url": "https://api.com/oauth2/token",
"method": "POST",
"headers": {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Postman-Token": "postmantoken"
},
"data": {
"client_id": clientId,
"client_secret": clientSecret,
"grant_type": "password",
"username": username,
"password": password,
}
}
$.ajax(settings).done(function (response) {
aTkn = response.access_token;
});
return aTkn;


Fetch: get a 500 error : {error: "invalid_request", error_description: "Object reference not set to an instance of an object."} error: "invalid_request" error_description: "Object reference not set to an instance of an object."



    fetch("https://api.com/oauth2/token", {
crossDomain:true,
method: 'post',
headers: { "Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Postman-Token": postmantoken},
body:{
"client_id": clientId,
"client_secret": clientSecreet,
"grant_type": "password",
"username": username,
"password": password,
}
}).then((data)=>{debugger})






ajax reactjs post fetch






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 21 at 22:23









sideshowbarker

30.3k137191




30.3k137191










asked Nov 21 at 18:43









Maria Ramirez

42




42












  • What's the error you're getting?
    – chrisg86
    Nov 21 at 18:48






  • 1




    body: JSON.stringify(data) Using Fetch API
    – devserkan
    Nov 21 at 18:50


















  • What's the error you're getting?
    – chrisg86
    Nov 21 at 18:48






  • 1




    body: JSON.stringify(data) Using Fetch API
    – devserkan
    Nov 21 at 18:50
















What's the error you're getting?
– chrisg86
Nov 21 at 18:48




What's the error you're getting?
– chrisg86
Nov 21 at 18:48




1




1




body: JSON.stringify(data) Using Fetch API
– devserkan
Nov 21 at 18:50




body: JSON.stringify(data) Using Fetch API
– devserkan
Nov 21 at 18:50












1 Answer
1






active

oldest

votes

















up vote
0
down vote













The data you are passing to fetch must be stringified, otherwise something like [object Object] will be passed in:



fetch("https://api.com/oauth2/token", {
crossDomain: true,
method: 'post',
headers: {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Postman-Token": postmantoken
},
body: JSON.stringify({
"client_id": clientId,
"client_secret": clientSecreet,
"grant_type": "password",
"username": username,
"password": password,
})
}).then((data) => { debugger })


Hope this helps!






share|improve this answer





















  • This is the error I get both with JSON.stringify and without it: {error: "invalid_request", error_description: "Object reference not set to an instance of an object."} error: "invalid_request" error_description: "Object reference not set to an instance of an object."
    – Maria Ramirez
    Nov 21 at 19:20












  • It looks like clientSecreet is misspelled. I would suggest to check all variables you're trying to pass in.
    – chrisg86
    Nov 21 at 19:23










  • That was just a place holder to paste the code here, I am sending the request with hard coded values
    – Maria Ramirez
    Nov 21 at 19:27











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53418648%2fpost-request-works-with-ajax-but-not-with-fetch%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
0
down vote













The data you are passing to fetch must be stringified, otherwise something like [object Object] will be passed in:



fetch("https://api.com/oauth2/token", {
crossDomain: true,
method: 'post',
headers: {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Postman-Token": postmantoken
},
body: JSON.stringify({
"client_id": clientId,
"client_secret": clientSecreet,
"grant_type": "password",
"username": username,
"password": password,
})
}).then((data) => { debugger })


Hope this helps!






share|improve this answer





















  • This is the error I get both with JSON.stringify and without it: {error: "invalid_request", error_description: "Object reference not set to an instance of an object."} error: "invalid_request" error_description: "Object reference not set to an instance of an object."
    – Maria Ramirez
    Nov 21 at 19:20












  • It looks like clientSecreet is misspelled. I would suggest to check all variables you're trying to pass in.
    – chrisg86
    Nov 21 at 19:23










  • That was just a place holder to paste the code here, I am sending the request with hard coded values
    – Maria Ramirez
    Nov 21 at 19:27















up vote
0
down vote













The data you are passing to fetch must be stringified, otherwise something like [object Object] will be passed in:



fetch("https://api.com/oauth2/token", {
crossDomain: true,
method: 'post',
headers: {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Postman-Token": postmantoken
},
body: JSON.stringify({
"client_id": clientId,
"client_secret": clientSecreet,
"grant_type": "password",
"username": username,
"password": password,
})
}).then((data) => { debugger })


Hope this helps!






share|improve this answer





















  • This is the error I get both with JSON.stringify and without it: {error: "invalid_request", error_description: "Object reference not set to an instance of an object."} error: "invalid_request" error_description: "Object reference not set to an instance of an object."
    – Maria Ramirez
    Nov 21 at 19:20












  • It looks like clientSecreet is misspelled. I would suggest to check all variables you're trying to pass in.
    – chrisg86
    Nov 21 at 19:23










  • That was just a place holder to paste the code here, I am sending the request with hard coded values
    – Maria Ramirez
    Nov 21 at 19:27













up vote
0
down vote










up vote
0
down vote









The data you are passing to fetch must be stringified, otherwise something like [object Object] will be passed in:



fetch("https://api.com/oauth2/token", {
crossDomain: true,
method: 'post',
headers: {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Postman-Token": postmantoken
},
body: JSON.stringify({
"client_id": clientId,
"client_secret": clientSecreet,
"grant_type": "password",
"username": username,
"password": password,
})
}).then((data) => { debugger })


Hope this helps!






share|improve this answer












The data you are passing to fetch must be stringified, otherwise something like [object Object] will be passed in:



fetch("https://api.com/oauth2/token", {
crossDomain: true,
method: 'post',
headers: {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Postman-Token": postmantoken
},
body: JSON.stringify({
"client_id": clientId,
"client_secret": clientSecreet,
"grant_type": "password",
"username": username,
"password": password,
})
}).then((data) => { debugger })


Hope this helps!







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 21 at 18:50









chrisg86

7,82421023




7,82421023












  • This is the error I get both with JSON.stringify and without it: {error: "invalid_request", error_description: "Object reference not set to an instance of an object."} error: "invalid_request" error_description: "Object reference not set to an instance of an object."
    – Maria Ramirez
    Nov 21 at 19:20












  • It looks like clientSecreet is misspelled. I would suggest to check all variables you're trying to pass in.
    – chrisg86
    Nov 21 at 19:23










  • That was just a place holder to paste the code here, I am sending the request with hard coded values
    – Maria Ramirez
    Nov 21 at 19:27


















  • This is the error I get both with JSON.stringify and without it: {error: "invalid_request", error_description: "Object reference not set to an instance of an object."} error: "invalid_request" error_description: "Object reference not set to an instance of an object."
    – Maria Ramirez
    Nov 21 at 19:20












  • It looks like clientSecreet is misspelled. I would suggest to check all variables you're trying to pass in.
    – chrisg86
    Nov 21 at 19:23










  • That was just a place holder to paste the code here, I am sending the request with hard coded values
    – Maria Ramirez
    Nov 21 at 19:27
















This is the error I get both with JSON.stringify and without it: {error: "invalid_request", error_description: "Object reference not set to an instance of an object."} error: "invalid_request" error_description: "Object reference not set to an instance of an object."
– Maria Ramirez
Nov 21 at 19:20






This is the error I get both with JSON.stringify and without it: {error: "invalid_request", error_description: "Object reference not set to an instance of an object."} error: "invalid_request" error_description: "Object reference not set to an instance of an object."
– Maria Ramirez
Nov 21 at 19:20














It looks like clientSecreet is misspelled. I would suggest to check all variables you're trying to pass in.
– chrisg86
Nov 21 at 19:23




It looks like clientSecreet is misspelled. I would suggest to check all variables you're trying to pass in.
– chrisg86
Nov 21 at 19:23












That was just a place holder to paste the code here, I am sending the request with hard coded values
– Maria Ramirez
Nov 21 at 19:27




That was just a place holder to paste the code here, I am sending the request with hard coded values
– Maria Ramirez
Nov 21 at 19:27


















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53418648%2fpost-request-works-with-ajax-but-not-with-fetch%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Berounka

Sphinx de Gizeh

Mécislas Golberg