【发布时间】:2020-11-04 00:17:23
【问题描述】:
我有一个基本的 C# Web API,我试图从 Sharepoint 站点调用它。目前,它尚未部署,而是在 Visual Studio 之外的 IIS Express 中运行。在我最初的测试中,我只是用几个文本框、一个提交按钮和一个 AJAX 调用创建了一个基本的 HTML 页面,以显示 API 正在工作。但是当我尝试从 Sharepoint 执行此操作时,我收到了 CORS 错误。
Access to XMLHttpRequest at 'http://localhost:63123/api/MKT' from origin 'https://sharepointurl.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
我试过了:
-
将以下标头添加到我的 Web API 的 web.config 文件中
<add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Methods" value="GET,POST,OPTIONS" /> <add name="Access-Control-Allow-Headers" value="*" /> -
尝试使用禁用 COR 策略的 Chrome 插件。
但是,错误仍然存在。关于我还可以解决什么问题来追踪这个问题有什么想法吗?我觉得这要么是 IIS Express 方面的东西,要么是 Sharepoint。
<script src = "src=" //ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
<script type = "text/javascript" >
function PreSaveAction() {
var foldername = new Object();
foldername.businessunitname = $("select[title='TestSelection1']").find("option:selected").text();
foldername.dbatenantname = $("select[title='TestSelection2']").find("option:selected").text();
$.ajax({
url: 'http://localhost:63123/api/MKT',
type: 'POST',
dataType: 'json',
contentType: "application/json",
data: JSON.stringify(foldername),
success: function(data, textStatus, xhr) {
console.log(data);
},
error: function(xhr, textStatus, errorThrown) {
console.log('Error in Operation');
}
});
}
</script>
【问题讨论】:
标签: javascript jquery ajax asp.net-web-api