我正在从ajax做dross域请求。请求似乎没问题,并且它正在成功地引用数据库并返回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
答案 0 :(得分:1)
由于浏览器不允许跨域服务器调用,我们可以通过将apache配置为与目标服务器交互的代理来实现此目的
这是解决方案。 在本地apache服务器的http.conf文件中添加“Location”标签。然后,您的服务器将充当代理并将您的呼叫重定向到目标服务器。
示例:
ProxyPass abc dot来了 ProxyPassReverse abc dot com
所有对<>的调用将被重定向到abc dot com
希望这会对你有所帮助。
答案 1 :(得分:0)
不确定JSON.sendInfo是如何工作的,但是在JSONP中你需要从url返回一个回调并将其传回响应中,如下所示:
format.jsonp { render json: results, callback: params[:callback]}