首页 > 解决方案 > GetResponse Api 集成使用 fetch() 不起作用

问题描述

GetResponse Api 集成使用 Fetch API 方法不起作用

控制台中显示以下 SMS:

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).

代码如下:

// 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: "fdfdfd@gmail.com"
        }
    ),
    
    // 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));

标签: javascriptapifetchfetch-apirest

解决方案


正如azbarcea所说,这是一个经典的 CORS 问题。

至于您对为什么 cURL 有效但 Fetch API 无效的评论,您可以参考 Stack Overflow 中的这个答案


推荐阅读