明明是post请求为什么会在地址栏显示参数?

一、 下面我先说说出现的问题:

1、新增页面的form表头:

2、控制器中的部分代码:

        /**
	 * 按照条件查询APP集合
	 * @return
	 */
	@RequestMapping(value="/appInfoList.html")
	public String getAppInfoList(@RequestParam(value="querySoftwareName",required=false) String querySoftwareName,
			  @RequestParam(value="queryStatus",required=false) String queryStatus,
			  @RequestParam(value="queryFlatformId",required=false) String queryFlatformId,
			  @RequestParam(value="queryCategoryLevel1",required=false) String queryCategoryLevel1,
			  @RequestParam(value="queryCategoryLevel2",required=false) String queryCategoryLevel2,
			  @RequestParam(value="queryCategoryLevel3",required=false) String queryCategoryLevel3,
			  @RequestParam(value="pageIndex",required=false) String pageIndex,
			  Model model){
		
		//......省略部分代码
		
		return "/developer/app_weihu";    //跳转到查询页面
	}
       

        /**
	 * 新增APP信息
	 * @param appInfo
	 * @param session
	 * @param request
	 * @param attachs
	 * @return
	 */
	@RequestMapping(value = "/addAppInfo.html", method = RequestMethod.POST)
	public String addAppInfo(
			AppInfo appInfo,
			HttpSession session,
			HttpServletRequest request,
			@RequestParam(value = "attachs", required = false) MultipartFile[] attachs,
			Model model) {

		// .....此处省略部分代码
		if (appInfoService.addAppInfo(appInfo)) {
			return "redirect:/sys/developer/appInfoList.html";//新增成功,跳转到查询方法
		}
		return "developer/app_addInfo";                       //新增失败,原路返回
	}

3、页面显示效果:

 二、问题分析

 控制器中我采用的是redirect关键字,但是,重定向后的参数肯定要拼接到url后面,因此会出现以上问题

三、解决问题

 第一种方案

请求采用forward(转发)

第二种方案:

springMVC的配置文件注解开关中配置"ignoreDefaultModelOnRedirect"变量为true, 如下:
<mvc:annotation-driven ignoreDefaultModelOnRedirect="true"/>

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在使用jQuery的post请求发送数据时,地址栏是不显示请求的目标地址的。这是因为post请求是通过AJAX技术来实现的,所以页面不重新加载或跳转,而是通过在后台与服务器进行通信来获取数据。 当使用jQuery的post方法发送请求时,我们需要指定请求的目标地址和要发送的数据。例如: ```javascript $.post("example.php", {name: "John", age: 30}, function(data){ // 处理返回的数据 }); ``` 在以上例子中,我们发送了一个post请求给example.php这个目标地址,并附带了name和age两个参数。在请求发送后,页面不发生跳转,而是继续停留在当前页面,通过与服务器的通信获取返回的数据。 所以,无论是get请求还是post请求,在使用jQuery的AJAX方法发送请求时,地址栏是不显示请求的目标地址的。只有当我们通过表单提交或通过a标签链接点击跳转时,地址栏改变展示新的URL。 ### 回答2: jQuery中的post请求是通过Ajax方式向后端发送请求并获取返回的数据。在post请求中,地址栏是不发生改变的。 jQuery的post请求使用`$.post()`函数发送请求,该函数接受三个参数请求的URL、要发送的数据以及成功时的回调函数。 例如: ```javascript $.post("example.php", { name: "John", age: 30 }, function(data) { console.log(data); }); ``` 上述代码向URL为"example.php"的后端发送一个post请求,发送的数据是一个包含name和age的对象。当请求成功时,将返回的数据输出到控制台。 在这个过程中,地址栏是不发生改变的。通常情况下,地址栏中的URL只在页面加载或跳转时发生改变,而使用Ajax发送的请求是异步的,不刷新页面或改变URL。 所以,在发送jQuery的post请求时,地址栏是保持不变的,不显示请求的URL。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值