即使响应是200 ok,也要访问ajax请求中的错误块

access the error block in ajax request even the reponse is 200 ok

本文关键字:请求 ajax 访问 错误 响应 ok      更新时间:2023-09-26

我正在做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

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

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

的例子:

ProxyPass abcProxyPassReverse abc。com

所有对<>的调用将重定向到abc。com

希望对你有帮助。

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

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