jquery 之 ajax 跨域请求-后端为java
前段写法:
$.ajax({
async: false,
url: "后端请求的url",
type: "GET",
dataType: 'jsonp',
jsonp: 'jsonpcallback',
data: "",
timeout: 5000,
complete: function(XMLHttpRequest, textStatus) {
if (textStatus == "error") {
layer.open({
content: '请求出错(网络异常.)',
style: 'background-color:rgb(230, 30, 43); color:#fff; border:none;',
time: 2
});
}
}
});
function jsonpcallback(response) {
if (!$.isEmptyObject(response)) {
//获取返回的数据
}
};
java后端:
1.后端正常返回 json 数据,但不是直接返回,需通过jsp 中转一下,jsp 内容如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//jsonStr:是后台返回的json数据
//jsonpcallback :必需与前端的jsonp: 'jsonpcallback',一致
String jsonResult = (String)request.getAttribute("jsonStr");
out.println("jsonpcallback("+jsonResult+")");
%>