ajax 获取对 Office365 REST 的请求 Api CORS 失败?
ajax get request to Office365 REST Api fails CORS?
我正在尝试从我的本地服务器向 Office365 RESTful API 服务发出 ajax GET 请求,但是 运行 到 cross-domain HTTPRequest 错误。以下是我的 'get-files-at-root' 尝试的示例:
$.ajax({
url: 'https://[sharepoint_site]/_api/v1.0/me/files?access_token='+token,
type: 'get',
dataType: 'json',
success: function(data) {
if (success){
success(data);
}
},
error: error
})
我从服务器收到以下响应:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 403.
我试过将访问令牌作为 header 参数发送:
headers: {'Authorization': 'Bearer '+ token}
但这有相同的结果。
对我做错了什么有什么想法吗?
(背景:我正在尝试在客户端上创建自己的 Office365 'file picker',因为我找不到提供此功能的 OneDrive Business 可用库。)
您可以尝试在 header 中设置 Access-Control-Allow-Origin,如下所示。
headers: { 'Access-Control-Allow-Origin': '*' }
response.setHeader("Access-Control-Allow-Origin", "*");
response.setCharacterEncoding("UTF-8");
response.setHeader("Access-Control-Allow-Methods", "POST, GET");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
你对 CORS 一无所知。阅读规范:http://www.w3.org/TR/cors/
在您的情况下,您必须允许 null
来源,因为我们正在谈论本地主机。您必须允许您发送的方法和 header,甚至是 content-type
header。您必须允许发送凭据,您可以在 Authorization
header 中获取凭据。您必须使用 200 ok
处理 OPTIONS
请求。
Office 365 文件 API 和 SharePoint REST 刚刚引入了对 CORS 的支持。
您尝试做的正是它的工作原理。该服务将使用 Access-Control-Allow-Origin header.
响应 OPTIONS pre-flight 请求
请求中的授权必须是 Azure Active Directory 颁发的 OAuth2 隐式授权访问令牌。
我正在尝试从我的本地服务器向 Office365 RESTful API 服务发出 ajax GET 请求,但是 运行 到 cross-domain HTTPRequest 错误。以下是我的 'get-files-at-root' 尝试的示例:
$.ajax({
url: 'https://[sharepoint_site]/_api/v1.0/me/files?access_token='+token,
type: 'get',
dataType: 'json',
success: function(data) {
if (success){
success(data);
}
},
error: error
})
我从服务器收到以下响应:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 403.
我试过将访问令牌作为 header 参数发送:
headers: {'Authorization': 'Bearer '+ token}
但这有相同的结果。
对我做错了什么有什么想法吗?
(背景:我正在尝试在客户端上创建自己的 Office365 'file picker',因为我找不到提供此功能的 OneDrive Business 可用库。)
您可以尝试在 header 中设置 Access-Control-Allow-Origin,如下所示。
headers: { 'Access-Control-Allow-Origin': '*' }
response.setHeader("Access-Control-Allow-Origin", "*");
response.setCharacterEncoding("UTF-8");
response.setHeader("Access-Control-Allow-Methods", "POST, GET");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
你对 CORS 一无所知。阅读规范:http://www.w3.org/TR/cors/
在您的情况下,您必须允许 null
来源,因为我们正在谈论本地主机。您必须允许您发送的方法和 header,甚至是 content-type
header。您必须允许发送凭据,您可以在 Authorization
header 中获取凭据。您必须使用 200 ok
处理 OPTIONS
请求。
Office 365 文件 API 和 SharePoint REST 刚刚引入了对 CORS 的支持。
您尝试做的正是它的工作原理。该服务将使用 Access-Control-Allow-Origin header.
响应 OPTIONS pre-flight 请求请求中的授权必须是 Azure Active Directory 颁发的 OAuth2 隐式授权访问令牌。