Могу ли я отправить изображение в приложение rails из другого домена с помощью jQuery AJAX? - PullRequest
2 голосов
/ 08 марта 2011

Как мне написать действие создания в контроллере для приема данных с другого сервера?

Возможно ли это с JSONP?Как насчет той же политики происхождения?

Мне нужно беспокоиться только о браузерах, совместимых с HTML5.Спасибо!

    $.ajax({
            type: 'POST',
            url: 'http://pinky.local:3000/items',
            dataType: 'jsonp',
            success: function(data) {
                 console.log(data)
                    },
            processData: false,
            data: "{\"item\":{\"name\":\"foobar\"}}"
        })

Контроллер

def create
  @item = Item.new(params[:item])
end

ОШИБКА: XMLHttpRequest не может загрузить http://pinky.local:3000/items. Источник http://foo.local не разрешен Access-Control-Allow-Origin.

1 Ответ

0 голосов
/ 23 марта 2011
 $(function() {
         $('a').click(function(e){
           $.ajax({
             data: "{\"item\":{\"name\":\"foobar\"}}",
             type:'POST',
             url:'http://localhost:3000/items/upload',
             success: function(response) {
               alert('Successfully sent data!'); 
             },
             error: function(event, jqXHR, ajaxSettings, thrownError) {
             }
           });
          });
        });
    </script>

match '/ items / upload' => "items # upload",: условие => {: method =>: параметры}

  def upload
        #Needs these headers for the cross-domain ajax
        headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
        headers['Access-Control-Allow-Headers'] = 'x-requested-with'
        if request.post?
          @item = Item.new(params[:item])
          @item.pic = data
          @item.save!
        end
        render :text => 'success'
      end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...