我正在使用React Native
实现Okta signin小部件我明白了:
Failed to load https://dev-827074.oktapreview.com/api/v1/sessions/me: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
尝试登录后,我得到以下内容:
UnsupportedBrowserError {name: "UNSUPPORTED_BROWSER_ERROR", message: "There was an error sending the request - have you enabled CORS?"}
答案 0 :(得分:0)
答案 1 :(得分:0)
您编写的API不支持CORS。 CORS或跨源资源共享允许Web应用程序向属于不同域的API提交请求。应在API端启用此设置。
这就是它的工作原理,每当将请求发送到不同的域时,OPTIONS方法就会发送到服务器。服务器响应Web应用程序的可用选项。如果支持动词,浏览器将使用适当的动词或方法发送实际请求(例如,GET或POST)。如果不支持该动词,则会收到上述错误消息。
简而言之,为您的API启用CORS。如果它是Node / Express API,它只是一个简单的cors包,你需要添加到你的项目和使用。
答案 2 :(得分:0)
我们收到了Okta的类似错误。我们要做的是将承载webview的服务器的主机名添加为Trusted Origin。
API - > Trusted Origins - >添加原点
您可以添加多个来源,您可能需要添加http://localhost:3000
。