jquery ajax获取后台request中的值 ,前台AJAX如下,后台如图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery ajax获取后台request中的值 ,前台AJAX如下,后台如图相关的知识,希望对你有一定的参考价值。

不知道怎么在前面ajax中获得后台request.setAttribute中的值,alert(message)得到的是underfind,怎么样改动才可以呢?

<script type="text/javascript" language="javascript" src="./js/jquery-1.7.2.min.js" >
</script>
<script >
function send()
var username=$("#username").val();
var userpass=$("#userpass").val();
$.ajax(
type:"POST",
url:"admin_Servlet",
data:"username=" + username + "&userpass="+userpass,
contentType: "application/json; charset=utf-8",
dataType: "json",
success:reSuccess()
)

function reSuccess(message)
alert(message);
Str="<div id=\"login\">sdfljslfjlsdjf=</div>";
document.getElementById("login").innerhtml=Str;


</script>

1、创建空的asp.net mvc项目。

2、添加页面1)添加HomeController2)添加Index页面3)添加Content文件夹,并添加Jquery源文件(jquery-1.12.4.min.js)。

3、添加测试DOM1)在Head标签内引入jquery 2)添加一个输入待获取session名称的文本框    3)添加一个按钮,点击按钮通过ajax获取session4)添加一个显示session值的div。

4、添加后台代码1)在HomeController的Index方法内,设置一个session值2)在HomeController中添加GetAjaxSession方法,接收session名称,返回值。

5、添加ajax方法获取session 1)给按钮绑定jquery点击事件2)在点击事件中获取文本框中的session名称3)通过ajax提交后台方法,并处理返回结果。

6、运行效果如下1)输入session名称2)点击按钮,执行jquery的按钮点击事件3)得到后台的session后,写回界面。

参考技术A ajax原理你弄错了!
if(Daofactry,getITAdminDao.findLogin(adminVo))

JSONObject object=new JSONObject();
object.put("su", "xxxxx");
object.put("ff", "xxxxx");
response.getWriter().write(object.toString());

js修改:
success:reSuccess(data)
alert(data.su);
alert(data.ff);
)追问

为什么我把dataType换成json,‘$.ajax好像不执行了呢??而且导入json需要的包后仍然无法运行成功,报出下面错误java.lang.NoSuchMethodError: net.sf.json.JSONObject.put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

可否写个json调用servlet的例子发给我呢

追答

因为你json jar包不对,或者你Action里返回的不是json类型的就报错,不过如果是text类型返回值,肯定就不错了。
你用json和text两个返回值测试下嘛,这个代码就是多练多测试的。毕竟有些东西东西传不了给你。
import org.json.JSONObject;
JSONObject object=new JSONObject();
object.put("su", "xxxxx");
object.put("ff", "xxxxx");
response.getWriter().write(object.toString());

$.ajax(
type:" post",//请求的类型
url:"",//请求的地址
data:" ",//发送服务器的数据
dataType:"json",//返会值的类型
//complete :function(XMLHttpRequest, textStatus),//AJAX请求完成时执行,一般不写
success:function(data, textStatus)//请求成功执行的代码
alert(data.su);
alert(data.ff);
,
error: function()

);

追问

终于解决了,原来是我servlet中最后一句跳转语句在搞鬼,把它注释掉就可以正常得到数据了

本回答被提问者采纳
参考技术B 如楼上所说,代码写法不对。jquery中success的function中的参数是后台的返回值,你用的是servlet,所以应该由out对象进行写出。若想取到request中的值,可在function中写入如下代码:
function reSuccess(message)
alert(message);
//以下两行为获得request中的su的值(即aassdd沽)//哎,又无知了,前面那个字不认识。。。
var su = <%=request.getAttribute("su")%>
alert(su);

Str="<div id=\"login\">sdfljslfjlsdjf=</div>";
document.getElementById("login").innerHTML=Str;

追问

试过了,这样取request得到的值为空

追答

查查你的servlet是否成功转发到你的目标jsp页面上了。这个值应该是能取到的,这里出错的概率还是很小的。
PS:我突然想到的,比较常见的情况是你的JSP没有成功调用到servlet。你可以先试试在servlet里面做下验证,方法:在控制台输出下你的请求参数试试,如果有值,你可以继续追问,如果没有,那说明你的ajax写法有问题。

追问

参数在 dataType是text的时候是可以得到的,我用html语言写了个是可以输出结果的

参考技术C 亲,后端写的不对,用out对象像浏览器写数据。不然拿不到!追问

jquery ajax 不能得到后台输出的request值么??那用out输出list怎么输出呢?

追答

将list转换为json字符串,然后用out输出。

追问

为什么我把dataType换成json,‘$.ajax好像不执行了呢??而且导入json需要的包后仍然无法运行成功

JQuery之Ajax

众所周知JQuery中的Ajax主要用于数据传输,其数据传输格式为JSON格式数据,比XML格式数据传输更快。

ajax 是 Asynchronous JavaScript and XML的简写,ajax一个前后台配合的技术,它可以让 javascript 发送异步的 http 请求,与后台通信进行数据的获取,ajax 最大的优点是实现局部刷新,ajax可以发送http请求,当获取到后台数据的时候更新页面显示数据实现局部刷新,在这里大家只需要记住,当前端页面想和后台服务器进行数据交互就可以使用ajax了。

ajax方法的参数说明:

  1. url 请求地址
  2. type 请求方式,默认是‘GET‘,常用的还有‘POST‘
  3. dataType 设置返回的数据格式,常用的是‘json‘格式
  4. data 设置发送给服务器的数据,没有参数不需要设置
  5. success 设置请求成功后的回调函数
  6. error 设置请求失败后的回调函数
  7. async 设置是否异步,默认值是‘true‘,表示异步,一般不用写
  8. 同步和异步说明
    • 同步是一个ajax请求完成另外一个才可以请求,需要等待上一个ajax请求完成,好比线程同步。
    • 异步是多个ajax同时请求,不需要等待其它ajax请求完成, 好比线程异步。

使用GET方式进行数据传输:

 1     <script src="../JS/jquery-1.12.4.min.js"></script>
 2     <script>
 3     function show(){
 4             // Ajax使用GET简化方式,请求JSON数据
 5             // get请求格式:get(url,传递给服务器的参数,请求成功后执行的函数,能够解析的数据格式)
 6             $.get(‘student.json‘,{},function(response){
 7                 // 当请求成功JSON解析出来的数据有两个,一个是对象/数组,还有一个所示请求状态码
 8                 // response是解析后的数据,
 9                 // 如果JSON解析之前的数据是数组,那么response就是数组
10                 // 如果JSON解析之前的数据是对象,那么response就是对象
11                 var $name = $(‘#name‘);
12                 var $age = $(‘#age‘);
13                 var $sex = $(‘#sex‘);
14                 var $school = $(‘#school‘);
15                 $name.html(response.name);
16                 $age.html(response.age);
17                 $sex.html(response.sex);
18                 $school.html(response.school);
19             },‘JSON‘).error(function(){
20                 alert(‘Error!‘);
21             });
22 }
23     </script>

使用POST方式进行数据传输:

    <script src="../JS/jquery-1.12.4.min.js"></script>
    <script>
    function show(){
            // Ajax使用GET简化方式,请求JSON数据
            // get请求格式:get(url,传递给服务器的参数,请求成功后执行的函数,能够解析的数据格式)
            $.get(‘student.json‘,{},function(response){
                // 当请求成功JSON解析出来的数据有两个,一个是对象/数组,还有一个所示请求状态码
                // response是解析后的数据,
                // 如果JSON解析之前的数据是数组,那么response就是数组
                // 如果JSON解析之前的数据是对象,那么response就是对象
                var $name = $(‘#name‘);
                var $age = $(‘#age‘);
                var $sex = $(‘#sex‘);
                var $school = $(‘#school‘);
                $name.html(response.name);
                $age.html(response.age);
                $sex.html(response.sex);
                $school.html(response.school);
            },‘JSON‘).error(function(){
                alert(‘Error!‘);
            });
}
    </script>

以上是关于jquery ajax获取后台request中的值 ,前台AJAX如下,后台如图的主要内容,如果未能解决你的问题,请参考以下文章

jsp页面中使用javascript获取后台放在request或session中的值

ajax回调函数无法获取后台传过来的值(SSM框架),大神请指教!

js如何取到后台传入的值

在servlet中怎样获取jsp中下拉列表中的值

jquery如何获取request中的值

用jquery中的ajax进行前后台,后台的方法正常执行,在前台接收不到后台传递的数据