Я могу успешно выполнить POST от AngularJS до моего маршрута Sinatra, чтобы получить статус «200».
Когда я инспектировать в Chrome, я вижу полезную нагрузку запроса следующим образом:
{"input":"testing"}
Но ответ пуст.
Вот как я POST-ки:
$http({
method: "POST",
url: "http://floating-beyond-3787.herokuapp.com/angular",
/*url: "https://worker-aws-us-east-1.iron.io/2/projects/542c8609827e3f0005000123/tasks/webhook?code_name=botweb&oauth=LOo5Nc0x0e2GJ838_nbKoheXqM0",*/
data: {input: $scope.newChat}
})
.success(function (data)
{
// $scope.chats.push(data);
$scope.chats.push($scope.newChat)
// if successful then get the value from the cache?
})
.error(function (data)
{
$scope.errors.push(data);
});
};
$scope.newChat = null
Chrome под Request Payload показывает, что он должным образом - как указано выше.
Когда я проверяю журналы в Heroku, где я запускаю приложение Sinatra, я не могу сказать, правильно ли я обрабатываю полезную нагрузку запроса. И я определенно не получаю что-нибудь в ответ:
post '/angular' do
puts "params: #{params}"
puts params[:input]
puts @json = JSON.parse(request.body.read)
return RestClient.post 'https://worker.io' {:send => params[:input]}
end
Я ожидаю:
- приложение Sinatra может получить полезную нагрузку: вход
- Он может успешно разместить на мой рабочий на железо .io
- Он может вернуть что-то обратно в ответ на Angular JS вместе с успехом.
Возможно ли это, и если да, то каким образом?
Спасибо, да, у меня были параметры [: input], чтобы я мог проверить, была ли проблема на конце клиента или нет. – Angela
Моя альтернатива заключалась в том, чтобы публиковать сообщения непосредственно на worker.io, но работник отвечает на создание задачи - но тогда нет способа вернуть ответ после выполнения задания. – Angela
Как только я получаю полезную нагрузку, есть ли способ для меня, чтобы вернуть рабочего обратно в AngularJS, который сделал сообщение? – Angela