我正在做来自ajax的dross域请求。该请求似乎没问题,并且成功命中数据库并返回 200 ok 响应,但在客户端仍然处于故障 block 中。 这是我的代码。
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 abc 点来 ProxyPassReverse abc 点 com
所有对<>的调用都将被重定向到abc dot com
希望这对您有帮助。
关于javascript - 即使响应是 200 ok,也可以访问 ajax 请求中的错误 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16775847/