Я думал, что понял CORS, но, видимо, я чего-то не понимаю. У меня есть приложение, которое я пытаюсь запустить с локального хоста. Этому приложению необходимо отправить запрос в службу поиска Azure. Я пытаюсь загрузить поисковый документ. В попытке сделать это у меня есть следующее:
var url = 'https://my-app.search.windows.net/indexes/test/docs/index?api-version=2015-02-28';
$.ajax({
url: url,
type: 'POST',
contentType:'application/json',
headers: {
'api-key':'XXXXXX',
'Content-Type':'application/json'
},
beforeSend: function (req) {
req.setRequestHeader('Access-Control-Allow-Origin', '*');
},
data: JSON.stringify({
'@search.action':'upload',
'id': '1',
'name': 'some name'
}),
success: function() { alert('success'); },
error: function() { alert('check the console window.'); }
});
Конечно, url
и api-key
не настоящие. Тем не менее, я могу успешно отправить эти данные, если использую POSTman. Тем не менее, когда я пытаюсь отправить его из своего приложения через jQuery, я получаю сообщение об ошибке в окне консоли, в котором говорится:
Failed to load resource: the server responded with a status of 403 (Forbidden)
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:72' is therefore not allowed access. The response had HTTP status code 403.
У меня есть параметры CORS «Разрешенный тип источника» для моей службы поиска Azure, установленные на «Все». Так что в основном, его широко открытым. Тем не менее, я все еще получаю эту ошибку CORS.
Как отправить данные в эту службу из jQuery на локальном хосте?
api-key
правильный? Проверьте в консоли Network своего браузера отправленные заголовки запроса. - person Phil   schedule 10.05.2016Access-Control-Allow-Origin
на клиенте. Все заголовкиAccess-Control-Allow-XXX
являются исключительной ответственностью сервера. - person Michal Foksa   schedule 10.05.2016api-key
правильно. Фактически, я использую его для доступа к другим конечным точкам той же службы. Ключ, который я использую, является первичным ключом администратора, поэтому у него должны быть все привилегии. - person user687554   schedule 10.05.2016