2016-04-23 3 views
0

У меня есть API колбы для управления погружным нагревательным устройством.Запрос CORs с флягой api - результаты запроса POST запроса JACKER в OPTIONs

https://github.com/timcknowles/anovapi_backend/blob/master/anova.py

Это на мой локальный сервер, и он правильно отвечает на запросы JQuery POST на том же домене, например,

$(document).ready(function() { 
      $("#start").click(function() { 

        $.ajax({ 
         type: 'post', 
         url: 'http://192.168.0.13:5000/start', 
         dataType: 'jsonp', 
         success: function(data) { 
         $("#message").html(data); 
         } 


$("#settemp").click(function() { 

        $.ajax({ 
         type: 'post', 
         contentType: 'application/json', 
         url: ' http://192.168.0.13:5000/temp', 
         data: JSON. stringify ({"temp":"50"}), 
         dataType: 'json', 
         success: function(data) { 
         $("#message").html(data); 
         } 
      }); 

Однако я хотел построить Синатра приложение клиента на другом сервере

https://github.com/timcknowles/anovapi_frontend/blob/master/main.rb

взаимодействовать с тем же API. JQuery идентичен и отлично работает для вызова START, однако для вызова TEMP он не работает.

В консоли разработчика firefox я вижу, что у него есть ВАРИАНТЫ вместо запроса POST (ответ 200).

Первоначально у меня были проблемы с перекрестными доменами со всеми моими запросами api jQuery, и я решил, что решил их, добавив расширение флеш-корса в api.

https://pypi.python.org/pypi/Flask-Cors

Я не понимаю, почему температура вызова не работает, но другие. Я подозреваю, что это потому, что я отправляю данные в виде значений температуры.

Любые советы очень ценятся.

+0

Какая ошибка во втором звонке? –

+0

Он не видел, чтобы дать ошибку, он просто не работает. – TimK

+0

Ловушка функция ошибки в js или посмотреть, что результат вызова в ваших инструментах разработчика браузера. –

ответ

1

Думаю, вам нужно инициализировать CORS() для работы Flask.

Попробуйте положить это на line 12 of your python server:

cors = CORS(app, resources={r"/*": {"origins": "*"}}) 

Вы также можете уйти только с CORS(app) (я никогда не использовал колба, так что я не уверен).

Для получения дополнительной информации см. Flask docs.