在进行客户端重定向时,是否可以向服务器发送一些JSON

Is it possible send some JSON to a server when making a client side redirect?

本文关键字:服务器 JSON 可以向 是否 客户端 重定向      更新时间:2023-09-26

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

谢谢

编辑:

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

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

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

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

我建议,

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

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

只需从上面的代码中获取参考,它没有经过测试。

你试过这个吗?

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");
    }
});