我有一个Sinatra应用程序,其中有一个ajax方法。以前它返回200和结果。现在它开始返回302,结果仍然正确(我可以在Google Chrome调试控制台中看到)。
这是xaml代码:
:javascript
$(document).ready(function() {
$(document).on("click", "#my_id", function(){
$.ajax({
type: "GET",
url: "/my_url",
success: function(data){
window.location = data;
}
});
});
});
def my_url
#getting a data.....
#returning the data... there is nothing unusual
end
更新: 这就是我所做的:
def my_url
result = get_result()
response.headers['Location'] = request.referer
result
end
但Location
中的Response
标题尚未更改且错误仍然存在。
答案 0 :(得分:1)
302不是错误代码。这是您通过添加Location
标头进行重定向的HTTP状态代码。添加Location
标头会自动将状态代码更改为302. 302的唯一预期响应类型是不理解302的浏览器将看到的内容。例如,一个HTML页面,说明它是一个带有指向新页面的链接的重定向。对于AJAX,预计302没有响应,浏览器将获取您重定向到的新位置的结果。
有关HTTP状态代码的详细信息,请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3。