json和ajax的使用

JS当中不能接收ModelAndView的返回值吗?一定要在JSP页面中才能接收吗?

1 方法一 【有效】

可以的,跟el表达式访问方式一样。
示例代码,一个数据展示请求的Action中存入一个userId:


 @RequestMapping(value="/diary")
    public ModelAndView toDiaryList(HttpSession session){
        ModelAndView view =  new ModelAndView("/diary_list");
        TbUser user = (TbUser)session.getAttribute(SystemConstant.CURRENT_USER);

        //set info of current user
        if(user!=null){
            Integer id = user.getId();
            view.addObject("userId",id);
        }

        return view;
    }

在页面jsp文件中js中使用这个userId作为查询条件:


    【有效?】


台返回的是js,还是json?这个一定要搞清楚!
假设后台返回的字符串存储在responseText里,那么
如果是js,就
var result = eval_r("(" + responseText + ")");
如果是json,就
var result = JSON.parse(responseText);

3 方法三 【有效】
加入隐藏字段,
  
  便于js读取 
 var passflag=document.getElementByIdx_x("au
<think>好的,我需要回答用户关于JSONAJAX的关系及用法的问题,并解释如何使用它们进行前后端交互。首先,我得确认自己对这两个概念的理解是否正确。 JSON是一种轻量级的数据交换格式,基于文本,易于读写解析。而AJAX是一种在无需重新加载整个页面的情况下,服务器交换数据并更新部分网页内容的技术。两者的关系应该是AJAX用于异步通信,而JSON作为数据格式在前后端之间传输数据。 接下来,用户想知道如何具体使用JSONAJAX进行交互。我需要分步骤说明,可能包括前端发送请求、后端处理并返回JSON、前端解析响应等步骤。同时,要结合用户提供的引用内容,特别是引用[2]中的后端代码示例,说明如何在后端处理请求并生成JSON响应。 要注意用户提到的系统级指令,比如数学公式的格式,但这个问题可能不涉及数学表达式,所以可能不需要使用。不过要确保使用中文回答,结构清晰,并生成相关问题。 需要检查用户提供的引用内容是否有帮助。引用[1]提到AJAXJSON的广泛应用,以及JSON相对于XML的优势。引用[2]则给出了后端处理的具体代码示例,包括如何接收参数、创建JSON对象并序列化返回。这些内容应该整合到回答中,解释前后端如何配合。 可能需要分步骤说明,例如前端使用AJAX发送请求,后端处理并返回JSON,前端处理响应。每个步骤需要具体说明代码结构,比如前端使用JavaScript的fetch或XMLHttpRequest,后端如何设置方法来接收参数并生成JSON。 还需要注意用户提到的引用标识,在回答中适当位置添加[^1][^2],尤其是在提到JSON的优势后端处理部分时。 最后,生成相关问题,可能涉及JSONXML的比较、AJAX的优势、安全性问题或数据处理技巧等。 需要确保回答符合用户的要求,结构清晰,步骤明确,并正确引用提供的资料。</think>### JSONAJAX的关系及交互方法 #### 一、JSONAJAX的关系 1. **JSON的作用** JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,以键值对形式组织数据,易于人类阅读机器解析。**它常用于前后端数据传输**,替代传统的XML格式,因为其语法简洁、体积更小[^1]。 2. **AJAX的作用** AJAX(Asynchronous JavaScript and XML)是一种异步通信技术,允许网页在不刷新的情况下服务器交互。**AJAX的核心是通过JavaScript发起HTTP请求,并动态更新页面内容**。 3. **两者的结合** AJAX负责通信流程,JSON负责数据封装。例如,前端通过AJAX发送请求,后端返回JSON格式的响应数据,前端解析JSON后更新页面。 --- #### 二、使用JSONAJAX实现交互的步骤 ##### 1. 前端发送AJAX请求(以JavaScript为例) ```javascript // 使用fetch API发送POST请求 fetch('/api/endpoint', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ // 将对象转为JSON字符串 param1: 'value1', param2: 'value2' }) }) .then(response => response.json()) // 将响应解析为JSON对象 .then(data => { console.log(data.Message); // 输出"Success" console.log(data.Data.Param1Result); // 处理后端返回的数据 }); ``` ##### 2. 后端处理请求并返回JSON(以C#为例) 引用[2]中的示例代码展示了如何接收参数并生成JSON响应: ```csharp [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public static string tt(string param1, string param2) { var resultObject = new { Message = "Success", Data = new { Param1Result = param1.ToUpper(), Param2Result = param2.ToLower(), SomeOtherData = "Hello from server!" } }; return Newtonsoft.Json.JsonConvert.SerializeObject(resultObject); } ``` **关键点**: - 后端参数名(`param1`, `param2`)必须前端的JSON键名一致[^2]。 - 使用`JsonConvert.SerializeObject`将对象序列化为JSON字符串。 ##### 3. 安全性注意事项 - **跨域问题**:若前端后端域名不同,需配置CORS(跨域资源共享)。 - **数据验证**:后端需对接收的参数进行合法性检查,防止注入攻击。 --- #### 三、JSONXML的对比优势 | 特性 | JSON | XML | |--------------|---------------------------|-------------------| | 数据体积 | 更小(无冗余标签) | 较大(标签重复) | | 解析速度 | 快(直接映射为JS对象) | 慢(需DOM解析) | | 可读性 | 高(类似代码对象) | 中等(标签嵌套) | ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值