服务端:
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
//js跨域请求
@RequestMapping(value = "/add")
@ResponseBody
public void addData(
@RequestParam(value = "param1", required = false, defaultValue = "") String param1,
@RequestParam(value = "param2", required = false, defaultValue = "") String param2,
@RequestParam(value = "param3", required = false, defaultValue = "") String param3,
@RequestParam String callback,
HttpServletResponse response) throws IOException {
logger.info("...model add...");
String params = "参数-IMEI:" + IMEI + ",SN:" + SN + ",MAC:" + MAC + ".";
logger.info(params);
String status = FAILED, errMsg = "";
try {
String validateResult = checkParams(IMEI, SN, MAC);
if (StringUtils.isNotEmpty(validateResult)) {
errMsg = validateResult;
} else {
boolean result = modelSer.addData(IMEI, SN, MAC);
if (result) {
status = SUCCESS;
} else {
errMsg = "插入失败.";
}
}
} catch (Exception e) {
errMsg = "插入异常.";
logger.error("异常原因:" + e.getMessage());
}
JSONObject json=new JSONObject();
json.put("status", status);
if (status.equals(FAILED)) {
json.put("errMsg", errMsg + params);
logger.error(params);
}
StringBuffer buf = new StringBuffer();
buf.append(callback);
buf.append("(");
buf.append(json.toString());
buf.append(");");
try{
response.setContentType("text/plain; charset=GBK");
response.getOutputStream().write(buf.toString().getBytes());
response.getOutputStream().flush();
}catch(Exception ex){
logger.error("响应异常." + ex.getMessage());
}
}
客户端访问:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="jquery-1.7.2.js" type="text/javascript"></script>
<script type="text/javascript">
function submit() {
alert(1);
$.getJSON("http://****:8080/demoPro/data/add?param1=111¶m2=wqeerre¶m3=11223&callback=?",
function(data) {
var d=eval(data);
alert(d.status);
if(d.status=='FAILED')
alert(d.errMsg);
});
}
</script>
</head>
<body>
<button οnclick="submit();">提交数据</button>
</body>
</html>