-5

我希望能够在向我的服务器发送某种数据时进行客户端重定向,我宁愿不包含在 url 中。这可能吗?如果有怎么办?和/或有没有更好的方法来解决这个问题?

谢谢

编辑:

更清楚地说,我不希望通过使用表单发出 POST 请求来解决这个问题,但是如果我找不到更合适的解决方案,这可能就是我将要做的事情。(如果我错了,请纠正我,但是)我只是不相信 POST 请求在语义上是正确的行为,所以我正在寻找一种感觉不那么笨拙的替代方案。

我还注意到一些建议我在 ajax 请求的回调中使用 window.location 。我不会这样做,因为它对我的情况来说不够健壮/限制性不够,我希望某些页面只能在某些条件下可访问。

4

3 回答 3

2

创建一个包含您要传递的数据的表单(带有隐藏字段和方法 post),然后使用重定向来模拟表单的提交$("#form").submit()

注意:表单必须具有重定向的操作 URL。

于 2013-10-08T08:34:50.400 回答
0

我会建议,

使用 JS 函数,而不是锚标记或表单动作来重定向页面,调用另一个函数(ajax)在相同的函数重定向之前发送一些数据......示例代码:

function redirect(url){
 ajaxFunctionCall();
 document.location=url;
}

只是拿参考。从上面的代码来看,它没有经过测试。

于 2013-10-08T08:40:40.953 回答
0

你试过这个吗?

var arr = { City: 'Moscow', Age: 25 };

$.ajax({
    url: 'get_params.php',
    type: 'POST',
    data: JSON.stringify(arr),
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    async: false,
    success: function(msg) {
        // success! if is needed //alert(msg);
        // redirect to your page
        window.location.replace("http://stackoverflow.com");
    }
});
于 2013-10-08T08:45:36.060 回答