我有一个具有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)}
}
答案 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())