Отправьте данные JSON через Jquery-Ajax на сервер Rails3 (heroku): данные успешно сохранены, но в ответ выдается ошибка - PullRequest
1 голос
/ 11 июля 2011

тут странная проблема:

Сервер: простое приложение на Rails3, которое записывает отправку пользователя через клиентскую форму Клиент: простая форма html-js, использующая Jquery-Ajax (1.5) для отправки информации о пользователе (имя, адрес электронной почты)

  1. Когда я тестирую на своем компьютере (сервер и клиент локальные) Пользователь правильно сохранен приложением Rails И код, возвращенный моему клиенту html-js, в порядке (200)

  2. Когда я нажимаю код сервера в Heroku Я использую код клиента локально с моего компьютера Пользователь правильно сохранен приложением Heroku Rails (да, Access-Control-Allow-Origin, кажется, работает !!!)

НО моя единственная проблема заключается в том, что на стороне клиента возникает ошибка ajax, я не могу вернуть statusCode, даже если xhr.statusText пуст

ВНОВЬ ДАННЫЕ ПРАВИЛЬНО ОТПРАВЛЯЮТСЯ И СОХРАНЯЮТСЯ НА СЕРВЕРЕ, но я не понимаю, почему мой клиент выдает ошибку.

Ниже моего кода клиента, он поднимает не из statusCode в списке, и xhr.statusText тоже пусто.

  $.ajax({
                type: "POST",
                url : "http://myapp.heroku.com/users",
                cache: false,
                data: formData,
                 statusCode: {
                        500:function() { alert("500"); },
                        501:function() { alert("501"); },
                        502:function() { alert("502"); },
                        503:function() { alert("503"); },
                        404:function() { alert("404"); },
                        403:function() { alert("403"); },
                        402:function() { alert("402"); },
                        401:function() { alert("401"); },
                        400:function() { alert("400"); },
                        304:function() { alert("304"); },
                        303:function() { alert("303"); },
                        302:function() { alert("302"); },
                        301:function() { alert("301"); },
                        200:function() { alert("200"); },
                        201:function() { alert("201"); },
                        202:function() { alert("202"); }
                },
                success: onSuccess,
                error: function(xhr){
                    alert("The error code is: "+xhr.statusText);
                }
            });

Здесь сервер:

# POST /users
# POST /users.xml
def create
 @user = User.new(params[:user])

respond_to do |format|
  if @user.save
    format.html { redirect_to(@user, :notice => 'User was successfully created.') }
    format.xml  { render :xml => @user, :status => :created, :location => @user }
    format.json { render :json => @user }
  else
    format.html { render :action => "new" }
    format.xml  { render :xml => @user.errors, :status => :unprocessable_entity }
  end
end
end

Интересно, нужно ли мне модифицировать код сервера? Но это работает, когда я запускаю его локально ... Спасибо за вашу помощь

...