この記事では主に json 形式での Ajax の提出について紹介します。いくつかの jar パッケージと js のサンプルコードは次のとおりです。 参加する必要がある: com.springsource.org.apache.commons.logging-1.1.1.jar、org.json.jar、jquery-1.10.0.min.js パッケージ<form class="form-inline">
扫码: <input id="txtQRCode" type="text">
<button id="btnReceive">确定</button>
</form>
<script type="text/javascript">
//扫描二维码
$('#btnReceive').click(function(){
$.ajax({
type:"GET",
url:"<%=basePath%>asynchronous/receive.do",
data:{qrCode:$('#txtQRCode').val()},
dataType:"json",
cache:false,
success:function(msg){
//var json = eval('('+msg+')');//拼接的json串
var flag = msg.flag;
var info = msg.info;
if(flag){
alert(info);
$('#txtQRCode').val("");
}
else{
alert(info);
}
},
error:function(error){alert(error);}
});
});
});
</script>
package com.utcsoft.pcapps.selfservice.controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.UnknownHostException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.utcsoft.common.attributes.YesNoEnum;
import com.utcsoft.common.util.DateOperate;
import com.utcsoft.pcapps.selfservice.attributes.KeyRequestAttr;
import com.utcsoft.pcapps.selfservice.dao.FlowDao;
import com.utcsoft.pcapps.selfservice.dao.KeyRequestDao;
import com.utcsoft.pcapps.selfservice.entity.Flow;
import com.utcsoft.pcapps.selfservice.entity.KeyRequest;
import com.utcsoft.pcapps.selfservice.entity.UtcUsers;
@Controller
@RequestMapping(value = "/asynchronous")
public class AsynchronousController {
private final static Log logger = LogFactory.getLog(AsynchronousController.class);
/**
* 扫描二维码 将订单改为UTC审核
* @param request
* @param response
* @throws IOException
* @throws JSONException
*/
@RequestMapping(value="/receive")
public void receive(HttpServletRequest request,HttpServletResponse response) throws IOException, JSONException{
String rets = "";
boolean b = false;
try{
String qrcode = request.getParameter("qrCode")==null?"":request.getParameter("qrCode").toString().trim();
logger.info(qrcode);
if(!"".equals(qrcode)){
JSONObject obj = new JSONObject(qrcode);
String orderid = obj.getString("orderid").trim();
if(!"".equals(orderid)){
KeyRequestDao keyDao = new KeyRequestDao();
KeyRequest k = new KeyRequest();//综合信息
k = keyDao.findOneByOrderId(orderid);
if(k!=null){
//修改订单状态为审核
int n = keyDao.updateState(orderid, String.valueOf(KeyRequestAttr.KqStateEnum.verify.getStep()));
Flow flow = new Flow();
FlowDao flowDao = new FlowDao();
UtcUsers users = (UtcUsers)request.getSession().getAttribute("utcUsers");
//将记录插入Flwo表中
flow.setKq_id(orderid);
flow.setKq_state(String.valueOf(KeyRequestAttr.KqStateEnum.cus_send.getStep()));
flow.setKq_state_to(String.valueOf(KeyRequestAttr.KqStateEnum.verify.getStep()));
flow.setIs_Pass(YesNoEnum.Y.getCode());
flow.setUser_id(users.getUser_id());
flow.setUser_id_from(users.getUser_id());
flow.setOpTimer(DateOperate.getDateTime());
int flowNum = flowDao.save(flow);
logger.info("扫描二维码提交结果:n="+n+";flowNum="+flowNum);
if(n>0){
b = true;
rets = "UTC接收订单成功";
logger.info("UTC接收订单成功");
}
else{
rets = "UTC接收订单失败";
logger.info("UTC接收订单失败");
}
}
else{
rets = "订单查询失败";
logger.info("订单查询失败");
}
}
else{
rets = "二维码中订单号为空";
logger.error("二维码中订单号为空");
}
}
else{
rets = "二维码内容为空";
logger.error("二维码内容为空");
}
}
catch(Exception e){
e.printStackTrace();
rets = e.getMessage();
logger.error(e.getMessage());
}
JSONObject ret = new JSONObject();
ret.put("flag", b);
ret.put("info", rets);
PrintWriter write = response.getWriter();
write.write(ret.toString());
write.flush();
}
}
jquery データを複数回リクエストすると ajax が更新されない問題の解決策
から返される 3 つのデータ型を処理する ajax メソッドサーバー
以上がjson形式のAjax送信サンプルコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。