GetResponse API integration Using Fetch API method not working
The following SMS is showing in the console:
Cross-Origin Request Blocked:
The Same Origin Policy disallows reading the remote resource at
https://api.getresponse.com/v3/contacts.
(Reason: CORS header 'Access-Control-Allow-Origin' missing).
Code is given below:
// main.js
// POST request using fetch()
fetch("https://api.getresponse.com/v3/contacts", {
// Adding method type
method: "POST",
// Adding body or contents to send
body: JSON.stringify(
{
campaign : {
campaignId: "5D8Qm"
},
name: "xyz",
email: "[email protected]"
}
),
// Adding headers to the request
headers: {
"X-Auth-Token": "api-key o9q5s264jbp9dws0nsevnagqdst81esh",
"Content-type": "application/json"
}
})
// Converting to JSON
.then(response => response.json())
// Displaying results to console
.then(json => console.log(json));
Brian Tompsett - 汤莱恩
5,92972 gold badges63 silver badges135 bronze badges
asked Oct 4, 2021 at 0:22
1 Answer 1
It's a classic CORS issue as azbarcea said.
As for your comment about why cURL works but Fetch API not, you can refer to this answer in Stack Overflow.
Comments
lang-js
curl -s -D - https://api.getresponse.com/v3/contacts
, where-s
: Avoid showing progress bar, and-D
: Dump headers to a file and-
: forces the redirect to stdout. The headers of the HTTP protocol are important. the CORS standard happens within these headers.