【发布时间】:2019-02-10 06:05:21
【问题描述】:
我工作的公司使用生物识别考勤,并将数据同步到 Zoho 服务器以保存记录。我尝试使用 Zoho People API 开发一个网络应用程序,它可以让我知道我何时签到以及我的 8.5 小时何时结束。
我使用 Create-React-App 进行开发。
现在,API 调用在节点服务器中正常工作,我可以在其中记录数据,但是当我使用 npm start 启动本地服务器时,Chrome 无法显示数据并且我收到以下错误:
Failed to load https://people.zoho.com/people/api/attendance/getAttendanceEntries?authtoken=*******&date=05-Sep-2018&dateFormat=dd-MMM-yyyy&emailId=******&empId=****: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
为了解决这个问题,我必须安装 Allow-Control-Allow-Origin chrome 扩展:https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en
使用此扩展程序,该应用程序可以运行,并且我可以查看数据。但没有这个扩展,我不是。已尝试在 js 文件中包含一些与 CORS 相关的 HTTP 标头,但没有效果。如果需要更多详细信息,请告诉我。谢谢!
附:如果有人能 ELI5 为什么会发生这种情况以及从 API 服务器到我的客户端的数据传输实际上是如何工作的,我也将非常感激。
【问题讨论】:
-
我想,您是从本地 (DEV) 环境中访问 api,因此暂时您可以使用扩展程序,一旦您将此代码移动到生活中,您将不会面对这些
CORS问题。 -
嗨@DavidR!我已将代码推送到 Heroku。我在那里面临同样的问题。扩展也是我唯一的出路
-
Zoho API 似乎不支持 CORS,因此您无法使用 Web 浏览器向该 API 发出请求。
-
这个帖子可能对你有帮助 => stackoverflow.com/questions/47902840/…
-
这就解释了。我也许应该尝试使用快速服务器并代理请求。谢谢!
标签: node.js api cors create-react-app