У меня есть базовый c C# веб-API, который я пытаюсь вызвать с сайта Sharepoint. В настоящее время он не развернут и работает в IIS Express прямо из Visual Studio. В моем первоначальном тестировании я просто добавил базовую страницу c HTML с парой текстовых полей, кнопкой отправки и вызовом AJAX, чтобы показать, что 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.config моего веб-API
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET,POST,OPTIONS" />
<add name="Access-Control-Allow-Headers" value="*" />
Пробовал использовать подключаемый модуль Chrome, который отключает политику COR.
Однако ошибка сохраняется. Есть мысли о том, что еще я могу устранить, чтобы отследить это? Мне кажется, что это либо что-то на стороне 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>