Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Firefox中通过获取js向API发出请求?_Javascript_Fetch - Fatal编程技术网

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

Javascript 如何在Firefox中通过获取js向API发出请求?,javascript,fetch,Javascript,Fetch,我有一个web服务器,它有API。我使用Postman来创建POST和Get请求,所有的工作都很好。 现在我已经开始编写前端应用程序,无法从浏览器发出post请求。当我从计算机上运行index.html时,会出现以下错误:“跨源请求被阻止:同一源策略不允许。” 正在读取远程资源。原因:CORS标头“访问控制允许源”丢失。 这是我的密码: async function createRes(){ try { const connect = await fetch ('http://127.0.0

我有一个web服务器,它有API。我使用Postman来创建POST和Get请求,所有的工作都很好。 现在我已经开始编写前端应用程序,无法从浏览器发出post请求。当我从计算机上运行index.html时,会出现以下错误:“跨源请求被阻止:同一源策略不允许。” 正在读取远程资源。原因:CORS标头“访问控制允许源”丢失。 这是我的密码:

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

您需要在承载API的web服务器上配置CORS。问题不在于前端应用程序,而在于服务器端(API)。您必须配置服务器以允许应用程序发出CORS请求。向请求添加
'Access-Control-Allow-Origin'
头不会改变任何内容。更多关于CORS的信息。由于您没有提供有关API的任何信息,因此我无法编写任何其他内容来帮助您。

您需要在本地主机()上运行的API上启用CORS


实际上,将:
访问控制允许源代码:
移动到您的API,而不是提出请求的客户端。

对于Express,请尝试:

npm install cors
然后,在index.js文件中:

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

嗨,Yuri,你的后端用什么?正如其他人所建议的,您的后端需要启用CORS。看起来你在使用Python?所以可能是这样的:我使用express(node.js)Hello@Yuri Molodyko,这种情况经常在本地发生。我看你是对的:如果你能在外部服务器上做一个测试,它就可以工作了。你能做这个测试吗?祝你过得愉快,勇敢点!巨大的重复……它的工作原理是:app.use(cors({credentials:true,origin:true}))