【发布时间】:2013-02-05 21:59:07
【问题描述】:
我有一个 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
但Response 中的Location 标头尚未更改,错误仍然存在。
【问题讨论】:
-
响应中 Location 标头的值是多少?也许某些中间件正在重定向授权。
-
@Cixate,没错,响应中的位置等于我要重定向用户的 url。如果是这个问题,我该怎么办?
-
@AlanDert "没错,响应中的位置等于我要重定向用户的 url" - 为什么 你要重定向他们?原始代码说 302 是一个 problem 而你却说你 想要 重定向它们。现在您已经给出了一个更新,您更改了
Location标头……实际上在这里发生了什么? -
302 不是错误,它是告诉浏览器您正在尝试将用户重定向到其他位置的状态代码。添加 Location 标头会自动将状态码设置为 302。
标签: javascript ruby ajax sinatra