c 使用ajax传递数据类型,jquery AJAX传MAP类型的参数,中文有关问题

jquery AJAX传MAP类型的参数,中文问题

是用jquery的AJAX来发送异步请求,是用MAP类型来传递参数,遇到中文的时候是乱码,具体代码如下

var dbUser = document.getElementById("dbUser").value;

var schemaObject = document.getElementById("schemaObject").value;

var appName = document.getElementById("appName").value;

var ipAddress = document.getElementById("ipAddress").value;

var timestamp = document.getElementById("timestamp").value;

var auditLevel = document.getElementById("auditLevel").value;

var dbId = document.getElementById("dbId").value;

var sqlText=document.getElementById("sqlText").value;

var map = "sqlText="+sqlText+"&dbUser=" + dbUser+"&tmpName="+tmpName+"&mail="+mail+"&schemaObject=" + schemaObject + "&appName=" + appName+ "&ipAddress="+ipAddress+"&timestamp="+timestamp+"&timestamp="+timestamp+"&dbId="+dbId+"&auditLevel="+auditLevel;

$.ajax({

type:"POST",

url:"",

data:map,

async:false,

success:function(data){

var infos = eval("(" + data + ")");

alert(infos["info"]);

}

});

var map = "sqlText="+sqlText+"&dbUser=" + dbUser+"&tmpName="+tmpName+"&mail="+mail+"&schemaObject=" + schemaObject + "&appName=" + appName+ "&ipAddress="+ipAddress+"&timestamp="+timestamp+"&timestamp="+timestamp+"&dbId="+dbId+"&auditLevel="+auditLevel;

假如sqlText有中文,那么采用data:map传参就有乱码。

办法是用escape关键字解决问题

var map = "sqlText="+escape(sqlText)+"&dbUser=" + dbUser+"&tmpName="+tmpName+"&mail="+mail+"&schemaObject=" + schemaObject + "&appName=" + appName+ "&ipAddress="+ipAddress+"&timestamp="+timestamp+"&timestamp="+timestamp+"&dbId="+dbId+"&auditLevel="+auditLevel;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Bootstrap3中,可以使用jQuery来获取表单数据并转换为Map对象,然后使用Ajax将数据传递给后台。以下是一个示例代码: ```html <!-- 在页面中定义一个表单 --> <form id="myForm"> <div class="form-group"> <label for="name">Name:</label> <input type="text" class="form-control" id="name" name="name"> </div> <div class="form-group"> <label for="email">Email:</label> <input type="email" class="form-control" id="email" name="email"> </div> <button type="submit" class="btn btn-primary">Submit</button> </form> <!-- 在页面中引入jQuery和Bootstrap的JavaScript库 --> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> <script> $(document).ready(function() { // 当表单提交时 $('#myForm').submit(function(event) { // 阻止默认的表单提交行为 event.preventDefault(); // 将表单数据转换为Map对象 var formData = {}; $('#myForm').serializeArray().map(function(x){formData[x.name] = x.value;}); // 使用Ajax将数据传递给后台 $.ajax({ type: 'POST', url: '/submit', data: formData, success: function(response) { console.log('提交成功'); }, error: function(jqXHR, textStatus, errorThrown) { console.error('提交失败:', textStatus, errorThrown); } }); }); }); </script> ``` 在示例代码中,首先定义了一个表单,其中包含了两个表单项:Name和Email。然后在JavaScript代码中,使用jQuery选择器获取表单元素,并在提交表单时阻止默认的表单提交行为。接着,使用jQuery的`serializeArray()`方法将表单数据转换为一个数组,然后使用`map()`方法将数组转换为Map对象。最后,使用jQuery的`ajax()`方法将数据传递给后台。在`ajax()`方法中,需要指定请求的类型、URL、数据、成功回调和失败回调。在成功回调中,可以处理提交成功后的业务逻辑;在失败回调中,可以处理提交失败后的业务逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值