javascript 如何在SharePoint Online中启用CORS

af7jpaap  于 2023-06-28  发布在  Java
关注(0)|答案(3)|浏览(152)

我试图在我的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;
bnl4lu3b

bnl4lu3b1#

据我所知,CORS错误不是因为SharePoint而发生的,而是因为你的浏览器。这里的问题是,您试图将资源从www.example.com加载xxx.sharepoint.com到localhost(默认情况下,CORS中不会将其添加为接受)
因此,一个解决方案是使用对CORS不敏感的浏览器。这可能是以下内容:

cd "C:\Program Files (x86)\Google\Chrome\Application"
chrome.exe --disable-web-security --user-data-dir="C:\tmp"

此代码片段使用用户数据目录“C:\tmp”启动不带“Web Security”(包括CORS)的Google Chrome。
请记住,此解决方法仅适用于开发。在生产环境中,您不应该使用localhost...
https://www.thepolyglotdeveloper.com/2014/08/bypass-cors-errors-testing-apis-locally/

sg24os4d

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

baubqpgj

baubqpgj3#

跨域资源共享在现代浏览器中默认被阻止(在JavaScript API中)。
您的生产服务器必须是CORS-enabled,以便处理来自不同域的Web应用程序中的跨域 AJAX 请求。但是如果你只是需要绕过它进行开发,请尝试使用Allow CORS: Access-Control-Allow-Origin chrome扩展,它可以让你启用/禁用CORS检查。

相关问题