在工作中难免会碰到需要跨域请求数据或提交数据的情况,本人最开始也是在试了几种方式才成功,当时网上的案例也比较有限,下面贴出工作中的一个例子,已在多个项目中使用,完美解决跨域问题。
请求端JS:
<script type="text/ecmascript">
function fu_Login() {
var u_name = $("#textinput1").val();
var u_password = $("#textinput2").val();
if (u_name == "") {
alert("用户名为空,请输入用户名。");
return;
}
if (u_password == "") {
alert("用户密码为空,请输入密码。");
return;
}
$.getJSON("http://192.168.0.222:8080//mblogin?username=" + u_name + "&password=" + u_password + "&jsCallback=Login&callback=?");
}
function Login(result) {
loginvar = $.trim(result);
if (loginvar == "ok") {
sessionStorage.setItem("UserName", $("#textinput1").val());
sessionStorage.setItem("UserPasword", $("#textinput2").val());
//window.location = "CoalMineUser/UserLIst2.html";
window.location = "CoalMineUser/MKJBXX.html";
} else {
alert("用户名或密码错误!");
}
if ($("#checkbox0").attr("checked")) {
saveUserInfo();
}
}
</script>
跨越请求方法:
/**
* 跨越请求登录
* @param username
* @param password
* @param request
* @return
*/
@RequestMapping(value = "/mblogin")
@ResponseBody
public String mblogin(@RequestParam String username,
@RequestParam String password,
HttpServletRequest request) {
try {
.........
return callback + "('ok')";// 登陆成功
} catch (Exception e) {
e.printStackTrace();
return callback + "('error')";// 登录失败
}
}
看到网上贴出spingmvc有另外的方法解决跨域问题,但我这里也只是看了下,没去验证过。