ajax 页面发送post请求

本文介绍了一个使用Ajax实现的登录功能示例,通过前端JavaScript发起POST请求,并从后端接收响应来判断登录是否成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ajax 发送url的请求,然后后台返回数据,前台根据返回数据进行处理~

<script type="text/javascript" src="js/jquery-1.4.1.min.js"></script>
        <script type="text/javascript">
             $().ready(function () {
                    $('#Login').click(function () {
                            $.ajax({
                                type: "POST",
                                url: "login.action",
                                data: "sysUser.loginName=" + escape($('#username').val()) + "&sysUser.password=" + escape($('#password').val()),
                                beforeSend: function () {
                                    $("#login").css("display", "none");
                                },
                                success: function (msg) {
                                    if (msg == "success") {
                                        //parent.tb_remove();
                                        parent.document.location.href = "mainPage.action"; //如果登录成功则跳到管理界面
                                        parent.tb_remove();
                                    }
                                    if (msg == "failure") {
                                        alert('用户名或密码错误!');
                                    }
                                },
                                complete: function (data) {
                                    $("#login").css("display", "block");
                                },
                                error: function (XMLHttpRequest, textStatus, thrownError) {
                                    alert('模块加载异常!');
                                }
                            });
                    });
                });

        </script>



后台代码

   
     

      HttpSession session = (HttpSession) ServletActionContext.getRequest().getSession();
            String ustr=ojbToJson(user);
            session.setAttribute("sysuser",ustr);
            ServletContext ContextA = session.getServletContext();
            ContextA.setAttribute("globalSession", session);
            HttpServletResponse response = ServletActionContext.getResponse();
            response.setContentType("text/html;charset=utf-8");
                try {
                    PrintWriter out = response.getWriter();
                    out.write("success");
//                        out.print("{success:true,'msg':'aaa'}");
                        out.flush();
                        out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
//            this.setJsonStr("{success:true}");
            
        }else{
            ctx.put("user", null);
            HttpServletResponse response = ServletActionContext.getResponse();
                try {
                     PrintWriter pw = response.getWriter();
                        pw.write("failure");
//                        pw.write("{failure:true,'msg':'aaa'}");
                        pw.flush();
                        pw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
//            this.setJsonStr("{failure:true}");
        }
       


<think>首先,用户的问题是:“我想使用jqAjax发送POST请求并传递对象数据 请问jQuery ajax POST request sending object data”。这翻译成英文是:“I want to use jqAjax to send a POST request and pass object data. How to do jQuery ajax POST request sending object data?” 用户正在询问如何使用jQuery的Ajax功能发送一个POST请求,其中数据是一个对象。在引用中,有几个相关的部分: - 引用[1]:提到了jQuery Ajax方法返回一个XMLHttpRequest对象,但这不直接相关。 - 引用[2]:展示了如何使用jQuery Ajax进行GET请求,但用户需要的是POST请求。 - 引用[3]:讨论了jQuery在发送数据时如何处理表单值,自动转换为查询字符串。 - 引用[4]:直接提到了jQuery Ajax POST方法,使用github API作为示例。 从引用[4]中:“jQuery Ajax POST方法。The following example use the github api to fetch the list of repositories of a user using jQuery.ajax() and put results in a div [^4].” 这表明有一个使用jQuery.ajax()进行POST请求的例子。 用户的关键点是传递对象数据。在jQuery Ajax中,当发送POST请求时,你可以传递一个对象作为数据,jQuery会自动处理它,将其转换为查询字符串或JSON格式,具体取决于设置。 根据系统级指令: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$格式。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾添加引用标识。 - 回答结构清晰,帮助用户逐步解决问题。 结构回答: 1. **介绍**:简要解释jQuery Ajax POST请求如何发送对象数据。 2. **步骤**:逐步说明如何使用jQuery.ajax()发送POST请求。 3. **代码示例**:提供一个代码示例,展示如何传递对象数据。 4. **解释**:解释代码中的关键点。 5. **相关问题**:生成相关问题。 使用引用: - 引用[3]提到jQuery自动处理表单值数据为查询字符串。 - 引用[4]提供了POST请求的示例。 所以,在回答中,我会引用这些。 最终回答应该以中文呈现。 大纲: 1. 开头:确认用户需求,解释基本概念。 2. 主要部分:提供代码和解释。 - 使用jQuery.ajax()方法。 - 设置type为'POST'。 - 在data属性中传递对象。 - 设置contentType,如果需要发送JSON。 - 处理响应。 3. 代码块:像示例中那样,使用代码块格式。 4. 结尾:添加相关问题。 相关问题应该基于主题,如优化、错误处理等。 相关问题想法: 1. 如何发送JSON数据而不是表单数据? 2. 如何处理POST请求中的错误? 3. jQuery Ajax POST与其他方法(如$.post)的比较? 4. 安全性考虑,如CSRF保护? 确保回答真实可靠:基于jQuery文档和引用。 在引用末尾添加标识,如[^3]或[^4]。</think>### jQuery Ajax POST请求发送对象数据 在jQuery中,使用Ajax发送POST请求并传递对象数据是常见需求。jQuery的`$.ajax()`方法允许你灵活地配置请求,包括设置数据类型、内容类型和回调函数。当传递对象数据时,jQuery默认会将对象转换为查询字符串(如`key1=value1&key2=value2`),但如果需要发送JSON格式,可以手动设置`contentType`。下面我将逐步解释实现方法,确保代码清晰可靠。 #### 步骤说明 1. **引入jQuery库**:确保页面已加载jQuery(例如通过CDN)。 2. **配置$.ajax()方法**: - 设置`type: 'POST'`指定请求类型。 - 在`data`属性中传递对象数据(jQuery会自动处理编码)。 - 可选:设置`contentType`为`'application/json'`以发送JSON格式数据(否则默认为表单编码)。 - 定义`success`和`error`回调函数处理响应。 3. **处理数据**:服务器端需根据`contentType`解析数据(如JSON.parse())。 4. **错误处理**:添加错误回调以捕获网络或服务器问题。 #### 代码示例 以下是一个完整的示例,展示如何发送对象数据到服务器: ```javascript // 假设这是一个用户对象数据 var userData = { name: "张三", email: "zhangsan@example.com", age: 30 }; // 使用$.ajax()发送POST请求 $.ajax({ type: 'POST', // 指定请求类型为POST url: 'https://api.example.com/submit', // 替换为你的API端点 data: userData, // 传递对象数据,jQuery自动转换为查询字符串 contentType: 'application/x-www-form-urlencoded; charset=UTF-8', // 默认表单编码,可省略 dataType: 'json', // 预期服务器返回JSON数据 success: function(response) { // 请求成功时的处理 console.log('请求成功:', response); alert('数据已发送:' + response.message); }, error: function(xhr, status, error) { // 请求失败时的处理 console.error('请求失败:', status, error); alert('发送失败:' + error); } }); ``` #### 关键点解释 - **自动编码**:在`data`属性中传递对象时,jQuery会将其转换为查询字符串格式(例如`name=张三&email=zhangsan@example.com&age=30`),这适用于大多数表单提交场景[^3]。 - **发送JSON数据**:如果需要发送JSON格式,需显式设置`contentType: 'application/json'`,并将对象转换为JSON字符串: ```javascript data: JSON.stringify(userData), // 手动转换为JSON字符串 contentType: 'application/json; charset=UTF-8', // 设置JSON内容类型 ``` 这要求服务器端能解析JSON请求体。 - **简便方法**:jQuery还提供`$.post()`快捷方式,但`$.ajax()`更灵活,支持完整配置[^2][^4]。 - **性能与兼容性**:此方法兼容所有现代浏览器,但需注意跨域请求(CORS)问题,可通过服务器设置解决。 通过以上步骤,你可以轻松发送对象数据。jQuery自动处理数据编码,简化了开发流程[^3][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值