2016-12-17 3 views
0

Я создал шлюз API, который вызывает функцию лямбда-функции на AWS. Ссылка на GET это:AJAX, похоже, не может использовать GET AWS API Gateway даже при включенном CORS

https://z4eiy7g9n0.execute-api.us-east-1.amazonaws.com/test/rotation

Нажатие он должен возвращать число больше, чем 6000. Я хочу использовать JavaScript, чтобы получить API и мое понимание, что нужно использовать AJAX, чтобы сделать это. Итак, у меня есть следующие JavaScript (импортируя Jquery 3.1.1):

$(document).ready(function(){ 
    $("button").click(function(){ 
     $.ajax({ 
     url: "https://z4eiy7g9n0.execute-api.us-east-1.amazonaws.com/test/rotation", 
     headers: {"Content-Type": "text/json"}, 
     type: "GET", 
     success: function() { alert('Success!'); } 
     }); 
    }); 
}); 

Это не работает из-за поперечного происхождения материала и поэтому мое понимание мне нужно включить CORS. Итак, я выполнил инструкции в http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html. У меня есть

Access-Control-Allow-Origin*: '*' 
Access-Control-Allow-Headers: 'Content-Type' 

Мое понимание этого является то, что происхождение может быть любой домен и единственный заголовок, который должен быть включен «Content-Type». Однако, когда я нажимаю кнопку, чтобы вызвать это событие, я получаю следующую ошибку в консоли.

XMLHttpRequest не может загрузить https://z4eiy7g9n0.execute-api.us-east-1.amazonaws.com/test/rotation. Ответ на предполетный запрос не проходит проверку контроля доступа: Нет Заголовок «Access-Control-Allow-Origin» присутствует на запрошенном ресурсе . Поэтому исходный адрес http: // **** 'не допускается. ответ был HTTP код статуса 403.

Теперь я могу вызвать API из R с помощью httr пакета, так что я знаю, что это можно назвать, по крайней мере, в некоторых системах.

Что я делаю неправильно с моим запросом AJAX или с моим API?

ответ

0

Проблема заключалась в том, что я не использовал измененные ресурсы с включенным CORS. Как только я развернул ресурс, javascript начал работать правильно.

0

Я успешно использовал AJAX для подключения к API с поддержкой CORS, и я не помню прохождение содержимого контента в заголовках. Вы пробовали application/json вместо text/json? Я считаю, что именно так он настраивается мастером CORS на консоли AWS.