【问题标题】:access the error block in ajax request even the reponse is 200 ok即使响应为 200 ok,也可以访问 ajax 请求中的错误块
【发布时间】:2013-05-27 15:00:35
【问题描述】:

我正在做来自 ajax 的垃圾域请求。请求似乎没问题,它成功访问数据库并返回 200 ok 响应,但在客户端仍然处于失败块中。 这是我的代码。

validate($(".confpassword").val(),$("#psw").val());
    var firstname = $("#firstname").val();
    var lastname = $("#lastname").val();
    var email = $("#email").val();
    var password = $("#psw").val();
    var birthday = $("#birthday").val();

    var sendInfo = {
        firstname: firstname,
        lastname: lastname,
        email: email,
        password: password,
        birthday: birthday
    };
    $.ajax({
        type: 'POST',
        url: 'http://localhost:3001/users/create',
        data: JSON.sendInfo,
        crossDomain: true,
        dataType: 'application/json; charset=utf-8',

        success: function (data) {
                alert('success.............');
        },
        error: function(){
             alert('failure............');
        }
    });

如果有人知道,请帮助我

这是我在 ruby​​ 中的服务器端响应:

def create
  @user=User.create(:birthday=> params[:birthday],:email=> params[:email],:firstname=> params[:firstname], :lastname=> params[:lastname],:password=>params[:password])
  respond_to do |format|
    if @user.save
      format.json { render :json => @user,:status=>200}
    else
      format.json { render :json => @user.errors, :status => :unprocessable_entity}
    end
  end
end

【问题讨论】:

    标签: javascript ruby-on-rails json jquery


    【解决方案1】:

    由于浏览器不允许跨域服务器调用,我们可以通过将 apache 配置为与目标服务器交互的代理来做到这一点

    这里是解决方案。 在本地 apache 服务器的 http.conf 文件中添加“Location”标签。然后您的服务器将充当代理并将您的调用重定向到目标服务器。

    例子:

    ProxyPass abc 点来 ProxyPassReverse abc dot com

    所有对 的调用都将被重定向到 abc dot com

    希望这对你有帮助。

    【讨论】:

    • ProxyPass abc.com ProxyPassReverse abc.com
    • 但我正在使用 rails (webrick) 服务
    【解决方案2】:

    不确定 JSON.sendInfo 是如何工作的,但在 JSONP 中,您需要从 url 返回一个回调并将其传递回响应中,如下所示:

    format.jsonp { render json: results, callback: params[:callback]}

    【讨论】:

    • 但是我们不能在 post 请求中使用 jsonp。我已经试过了
    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多