2016-02-21 4 views
1

У меня есть простая функция лямбда, которая принимает некоторый текст и возвращает этот текст в качестве ответа. Я подключил его с помощью AWS API Gateway и протестировал его на консоли, а также на Postman. Я включил CORS, и заголовки на Postman кажутся правильными, для Access-Control-Allow-Origin установлено значение *.AWS Lambda + API Gateway POST Ошибка

Вот результат Почтальон:

enter image description here

Я не мог заставить его работать на моем местном, так что я решил провести статическую страницу здесь:

https://smileyfacetest.firebaseapp.com/

test = {"text": ":)"} 
$.post("https://pq8thdrp0a.execute-api.us-west-2.amazonaws.com/dev", test) 
    .done(function(data) { 
     console.log(data); 
    }); 

Но все же получена ошибка:

XMLHttpRequest cannot load https://pq8thdrp0a.execute-api.us-west-2.amazonaws.com/dev. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://smileyfacetest.firebaseapp.com' is therefore not allowed access. The response had HTTP status code 400. 

Есть ли что-то, что я делаю неправильно на интерфейсе? Если он работает на Postman, и у меня есть CORS включен в конечной точке API, я не понимаю, почему это должно быть ошибка. Любая помощь могла бы быть полезна!

Вот API конечной точки, если вы хотите попробовать его в Почтальон:

https://pq8thdrp0a.execute-api.us-west-2.amazonaws.com/dev

ответ

3

Я проверил ваш звонок, и она работает. Тем не менее, вам необходимо установить тип содержимого для JSON в вызове JQuery:

$.ajax({ 
    type: 'POST', 
    url: '/form/', 
    data: '{"name":"jonas"}', // or JSON.stringify ({name: 'jonas'}), 
    success: function(data) { alert('data: ' + data); }, 
    contentType: "application/json", 
    dataType: 'json' 
}); 

Я взял этот отрывок из How can I use JQuery to post JSON data?

Смежные вопросы