重定向到另一个页面而不发送查询字符串中的任何值
Redirecting to another page without sending any value in query string
我正在尝试在用户首次登录时执行用户验证。如果用户尚未经过验证,那么我将代码中的userid
发送到回调方法在回调中,我使用
(window.location.href = "/verifyuser?id=" + response.userId)
但是我不希望这样。 相反,我想对带有值的 URL 进行 ajax 调用。 我不希望用户 ID 在 URL 中可见。我试过使用
$.ajax({
type:"POST"
url:"/verifyuser",
data:{id:response.userId},
async:false
});
但它没有用。我的服务器端代码如下(我正在使用 mvc 4)
[HttpGet]
public ActionResult VerifyUser(string id)
{
ViewBag.Id = id;
return View("~/Views/User/VerifyUser.cshtml");
}
我的JS代码如下:
var postObj = {
url: "Home/Login",
data: {},
callback: function (status, response) {
if (response.status === 400) {
var errors = response.errors;
var serverValidate = new PS.Validate(userObj);
var isvalid = serverValidate.showErrors(errors);
}
else {
if (response.userId !== null && response.userId !== undefined) {
window.location.href = "/verifyuser?id=" + response.userId;
}
else {
window.location.href = "/user-dashboard";
}
}
}
};
me.fm.post(postObj);
有没有办法在有或没有Ajax的情况下做到这一点?谢谢。
如果你不想做一个ajax调用,你可以在你的控制器中返回一个RedirectToAction ActionResult,但你必须确保页面做一个实际的表单发布,而不是使用ajax
如果将 AJAX 请求更改为 POST,则还必须允许控制器操作响应 POST 请求。
[HttpPost]
public ActionResult VerifyUser(string id)
{
ViewBag.Id = id;
return View("~/Views/User/VerifyUser.cshtml");
}
相关文章:
- 如何有效地将游戏数据存储在URL查询字符串中
- 从查询字符串参数推断出正确的数据类型
- AngularJS:获取链接中没有哈希的查询字符串值
- AngularJS,如何更改查询字符串
- 如何将activeadmin查询字符串传递给batch_action
- 如何从查询字符串中的输入字段发回文本
- Django在使用AJAX时没有接收到新的查询字符串
- 使用查询字符串方法清除浏览器缓存
- 用于刷新的Javascript更改查询字符串
- 我想将查询字符串变量添加到JSON名称/值对中
- 将查询字符串值从页面传递 asp.net 到 iframe
- jqueryajax生成查询字符串,如果未定义则不通过
- 如何将查询字符串传递到HTML框架
- AngularJs将查询字符串发布到c#控制器
- Jquery - 从查询字符串中获取“#”值之后,而不是在“?”符号值之后获取
- 在 JavaScript 中将查询字符串传递给 Web 服务 (ASP.NET)
- 在查询字符串中查找 where 子句
- POST encodeURI查询字符串内部服务器错误 500
- JavaScript:从具有使用 # 符号的路由的 URL 获取查询字符串
- 更改链接 URL 中的路径名,同时保持查询字符串不变