我试图在我的react应用程序中实现共享点文件浏览器。使用microsoft/file-browser
作为这个ans代码如下。但是得到xxx... from origin 'http://localhost:3000' has been blocked by CORS policy
任何想法如何才能使CORS为此
import * as React from "react";
import { GraphFileBrowser } from '@microsoft/file-browser';
class App extends React.Component {
getAuthenticationToken() {
return new Promise<string>(resolve => {
resolve(
"VALID TOKEN"
);
});
}
render() {
return (
<GraphFileBrowser
getAuthenticationToken={this.getAuthenticationToken}
onSuccess={(selectedKeys: any[]) => console.log(selectedKeys)}
onCancel={(err: Error) => console.log(err.message)}
endpoint='https://XXX.sharepoint.com'
/>
);
}
}
export default App;
3条答案
按热度按时间bnl4lu3b1#
据我所知,CORS错误不是因为SharePoint而发生的,而是因为你的浏览器。这里的问题是,您试图将资源从www.example.com加载xxx.sharepoint.com到localhost(默认情况下,CORS中不会将其添加为接受)
因此,一个解决方案是使用对CORS不敏感的浏览器。这可能是以下内容:
此代码片段使用用户数据目录“C:\tmp”启动不带“Web Security”(包括CORS)的Google Chrome。
请记住,此解决方法仅适用于开发。在生产环境中,您不应该使用localhost...
https://www.thepolyglotdeveloper.com/2014/08/bypass-cors-errors-testing-apis-locally/
sg24os4d2#
您正在访问的Web应用程序是否支持CORS。以前版本的SharePoint很少或根本不支持CORS。
SharePoint 2016及更高版本要求您在所有CORS调用上使用OAuth。这可以使用低/高信任加载项令牌或AAD应用程序令牌来完成。SharePoint识别的任何有效OAuth令牌都将起作用。这是一个广泛的主题,但您可以在此处阅读有关加载项身份验证的内容-Authorization and authentication of SharePoint Add-ins
在SharePoint的早期版本(2013年及之前)中,您可以在IIS中使用URL重写规则或响应标头来伪造当时SharePoint中缺乏的CORS支持。现在它支持它,你不能伪造它,它需要身份验证。
更多信息-Fixing issue in making cross domain ajax call to SharePoint rest
baubqpgj3#
跨域资源共享在现代浏览器中默认被阻止(在JavaScript API中)。
您的生产服务器必须是CORS-enabled,以便处理来自不同域的Web应用程序中的跨域 AJAX 请求。但是如果你只是需要绕过它进行开发,请尝试使用Allow CORS: Access-Control-Allow-Origin chrome扩展,它可以让你启用/禁用CORS检查。