如何通过在Firefox中获取js向API发出请求?

时间:2019-12-09 10:38:16

标签: javascript fetch

我有一个具有API的Web服务器。我使用Postman创建POST和Get请求,并且一切正常。 现在,我已经开始编写前端应用程序,并且无法从浏览器发出发布请求。当我从计算机上运行index.html时,出现以下错误:“跨域请求被阻止:同源策略禁止 在https://localhost:3000/python处读取远程资源。原因:CORS标头“ Access-Control-Allow-Origin”丢失。 这是我的代码:

async function createRes(){
  try { const connect = await fetch ('http://127.0.0.1:3000/python',
    {method:"POST",
    body:JSON.stringify({date:"01/02/2019"}),
    headers:{"Content-Type":"application/json",
    "Access-Control-Allow-Origin":"*"
    }, 
    credentials:"include"})

    const data = await connect.json();
  } catch(error){
      console.log(error.message)} 
}

4 个答案:

答案 0 :(得分:1)

您需要在托管API的Web服务器上配置CORS

答案 1 :(得分:1)

问题不在于您的前端应用程序,而在于服务器端(您的API)。您必须配置服务器以允许来自应用程序的CORS请求。向请求添加'Access-Control-Allow-Origin'头不会改变任何内容。有关CORS here的更多信息。由于您没有提供有关API的任何信息,因此我无能为力。

答案 2 :(得分:1)

您需要在本地主机(http://localhost:3000/python)上运行的API上启用CORS。

本质上是将Access-Control-Allow-Origin: *移至您的API,而不是客户端发出请求。

答案 3 :(得分:1)

对于Express,请尝试:

npm install cors

然后,在您的index.js文件中:

const app = express()
app.use(cors())