微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

项目中碰到的Ajax相关的问题记录

需求描述:

第一步:通过controller1,进入到前端页面1,输入计算参数,点击按钮,对数据进行处理;

第二步:通过Ajax异步操作进入到controller2,得到数据之后,返回给Ajax,在success函数中进行显示,或者带数据进行页面跳转

第三步:最后在新的页面进行数据展示。

 

问题一:Ajax参数问题(ps:要搞清楚各参数代表的意义,否则无从下手):

  这里列出几个比较常用的参数:(.ajax,.get,.post,.getJson几种方法基本差不多)

  url: (String) 请求的HTML页的URL地址

  type:(String) 请求方式,认GET。注意其他的HTTP请求方法,例如PUT和DELETE也可以使用,但仅部分浏览器支持

  data:(Object或者String)发送到服务器的数据,如果不是字符串数据,将自动转换为字符串数据;

  dataType:(String)服务器端返回内容的格式,包括xml、html、script、json、jsonp 、jQuery;

  success:(Function),需要注意的是:要将data传到要跳转页面的时候,根据需求进行转码。    

@H_502_24@function(data,textStatus){ //data是服务器返回的数据 //textStatus是返回是否成功的状态,成功为"success",失败为"failure" //data类型可能是xmlDoc、jsonObj、html、text等等。 this//调用本次Ajax请求时传递的options参数 }

  error:(Function),可以查看错误的信息。

@H_502_24@function (XMLHttpRequest, textStatus, errorThrown) { alert("数据错误!" +"\n请求对象: " + XMLHttpRequest +"\n错误类型: " + textStatus +"\n异常对象: " + errorThrown); }

问题二:Ajax中提交表单以及将返回的数据传递到要跳转页面中进行显示

(1)提交表单的时候,如果有form表单,则不需要指定form表单的action属性

@H_502_24@<form id="Form" action="#"></form> <input type=button name="submit" value="提交"/>

 

(2)数据通过get方式放在要跳转的地址中:  

@H_502[email protected] = '跳转的目标地址'+data; //有可能需要对data进行编码,尤其是data中带有特殊字符的url解析器解析不了,使用encodeURIComponent进行处理。

注意:通过

@H_502_24@<input id="result" type="hidden" name="result" value=""> 在js中对value进行评估: $("#result").val(data); //data为Ajax返回的数据

上面的方式,并没有成功的将数据带回到controller1中。所以就选择了在success中进行跳转,将数据带回controller1中,然后在后端进行最后的跳转显示数据。

@H_502_24@

  
  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐