利用ajax获得后台传过来的json,前端无法解析,对前端不是很深入,求指导

问题描述

利用ajax获得后台传过来的json,前端无法解析,对前端不是很深入,求指导
这是servlet:
package com.kj.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.sf.json.JSONArray;

import com.kj.entity.User;
import com.kj.service.IUserService;
import com.kj.service.impl.UserServiceImpl;

public class MainPageServlet extends HttpServlet{

private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req HttpServletResponse resp)        throws ServletException IOException {    HttpSession session = req.getSession();    IUserService service = new UserServiceImpl();    String user_id = req.getParameter(""user"");    //可通过传参实现当前页面第一层节点的转换    if(user_id == null){        //若无参数,使用当前登陆用户        user_id = session.getAttribute(""user"").toString();    }    //当前主页第一节点的user    User current_user = service.getUserMessageByid(user_id);     List<User> sonUsers = service.getSonUser(current_user.getLeft_num() current_user.getRight_num() current_user.getUser_level());    List<User> thrid_user =new ArrayList<User>();;    int i = 0;    for(User user:sonUsers){        if(user.getUser_level() == current_user.getUser_level()+1){            //展示第二层级            switch(i){                case 0 :                     req.setAttribute(""user_1"" user);                    break;                case 1 :                    req.setAttribute(""user_2"" user);                    break;                default :                    req.setAttribute(""user_3"" user);                    break;              }            i++;        }else{            thrid_user.add(user);        }    }    //想将下面的array到前端,list转换为json没问题    JSONArray array = JSONArray.fromObject(thrid_user);    resp.getWriter().write(array.toString());    req.setAttribute(""current_user"" current_user);    req.getRequestDispatcher(""main.jsp"").forward(req resp);}@Overrideprotected void doPost(HttpServletRequest req HttpServletResponse resp)        throws ServletException IOException {    doGet(req resp);}

}

这是js:
$(function(){

$.ajax({    url:""main.do""    type:""GET""    success:function(msg){        var user = eval(""(""+msg+"")"");        alert(user.toString());    }    error:function(er){        console.log(er);    }});

})

这样写页面报错:Uncaught SyntaxError: Unexpected token < 。。。

解决方案

你用ajax异步请求,响应的时候却是跳转页面!不需要跳转页面!

解决方案二:
你先alert(msg),,弹出来看下是什么格式的数据

解决方案三:
ajax 写到write就行,不要用request或者response跳转,前面$.ajax({dataType : 'json'})给添加这个数据类型,就会自动将你传过来的 json值解析成
json数据,然后你就可以msg.key遍历了,key是你在后台写的

时间: 2024-10-26 22:30:38

利用ajax获得后台传过来的json,前端无法解析,对前端不是很深入,求指导的相关文章

关于$.ajax()以及后台传过来的list或者json问题

问题描述 关于$.ajax()以及后台传过来的list或者json问题 Controller里有一个集合返给js: List ywysales = tbMemberService.getSalesByRegionId(business.getTbRegionId(),rmanager.getTrmMemberId());//业务员的集合,显示业务员 js中有个方法接受这个list: $.ajax({ type:'POST', url:ctx + "/business/paper/business

jquery ajax 向后台传 json 数组 出现 400 错误,后台用的springmvc

问题描述 jquery ajax 向后台传 json 数组 出现 400 错误,后台用的springmvc 解决方案 400 请求出错 由于语法格式有误,服务器无法理解此请求.不作修改,客户程序就无法重复此请求. 应该是你发送的内容出问题了 解决方案二: 400,服务器自动返回的错误,是你请求的参数与后台的mvc路由无法匹配吧 解决方案三: 你将data:stringify(rows)更改为data:rows试试 解决方案四: 测试了你的代码,报415错误,就是服务器拒绝处理请求.原因是你传递的

Ajax向后台传json格式的数据出现415错误的原因分析及解决方法_AJAX相关

问题描述: ajax往后台传json格式数据报415错误,如下图所示 页面代码 function saveUser(){ var uuId = document.getElementById("uuid").value; var idCard = document.getElementById("idCard").value; alert(uuId+idCard); // var result = new Object(); // result.uuId = uuI

AJAX向后台传参数

ajax|后台  function createXMLHttpRequest(){   if(window.ActiveXObject)   {     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");   }   else if(window.XMLHttpRequest)   {     xmlHttp = new XMLHttpRequest();   }  }    function createQueryString()  {

jquery利用ajax调用后台方法实例_jquery

复制代码 代码如下: 语法:$(function(){    var callback = function(r){  //r表示后台数据返回的数据.    }    $.get("",callback);   //引号里面写方法的路径}); 这样就可以得到后台方法得到的数据显示在html前端了. 以下是工作中写的一段js和后台方法: js: 复制代码 代码如下: $(function(){    var callback = function (r) {        var dat

javascript-静态页面使用ajax获取后台传递的Json数据

问题描述 静态页面使用ajax获取后台传递的Json数据 项目中需要用到javascript获取后台传回来的Json数据,需要使用了ajax,页面是自动生成的静态页面,不能够使用到js框架,有办法么? 解决方案 ssh 中 jquery ajax 调用action返回的json数据并传递到页面Struts2结合jquery使用Ajax传递Json数据jsp页面使用json后台数据 解决方案二: 静态页面为什么不能用js,两者根本不矛盾的事情. 解决方案三: 你的意思是不能导入框架的js文件是吗

利用ajax与服务器通信,js中的程序没法正常执行

问题描述 document.getElementById("progressbar").style.display='block'; var url="Upload.do?flag="+flag; //alert("文件开始导入基础库"); send(url); 在这段js程序中,document.getElementById("progressbar").style.display='block'; 将进度条显示出来. se

asp.net里利用ajax和jquery将前台的值,传给后台查询数据库,再将查询结果返到前台。

问题描述 asp.net里利用ajax和jquery将前台的值,传给后台查询数据库,再将查询结果返到前台. 例如:在前台获取了一个值 "D11" 如何将D11传给后台.ashx文件里通过语句select * from table where ID="D11"; 再将给过返回给前台. 这个语句怎么写啊. 怎样将D11传递到后台去啊! 解决方案 1.无参数的方法调用, 注意:1.方法一定要静态方法,而且要有[WebMethod]的声明 后台: using System.

如何利用Ajax动态实现JSP页面上根据后台不同数据改变页面表格&amp;amp;lt;td&amp;amp;gt;的背景色

问题描述 如何利用Ajax动态实现JSP页面上根据后台不同数据改变页面表格<td>的背景色 如题,我在一个停车场管理系统中,通过页面上每个代表车位的单元格来监控车位的状态,不同的单元格表示不同的车位使用情况,后台的车位状态数据是通过action传过来的一个map,求大神解答或者给个思路 解决方案 每个单元格按照行列给出一个id jquery根据传来的坐标得到id,设置css 解决方案二: 车位位置,这些都不变的.车位增加id配置,服务器返回json数据如{"id1":&qu