跨域请求有: CORS
图像Ping(单向通讯) 用于用户点击页面或者动态广告曝光的次数 特点: 一是只能发送get请求 二是无法访问服务器的响应文本
图像Ping(单向通讯) 用于用户点击页面或者动态广告曝光的次数 特点: 一是只能发送get请求 二是无法访问服务器的响应文本
JSONP(双向通讯) 相对于图像Ping优点是能够访问响应的文本
<script type="text/javascript">
// CRS
function createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if("withCredentials" in xhr) {
alert(1);
xhr.open(method, url, true);
} else if(typeof XDomainRequest != "undefined") {
alert(2);
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
alert(3);
xhr =null;
}
return xhr;
}
var phone = new Date().getTime();
alert(phone);
var url = "http://localhost/jpjg/UserInfo/insert?phone=" + phone;
var xhr = createCORSRequest("get", url);
if(xhr) {
xhr.onload = function() {
//对request.responseText 进行处理
var responseText = xhr.responseText;
alert(responseText);
};
xhr.onerror = function() {
alert("An error occurred!");
}
xhr.send(null);
}else {
alert('xxxxxxxxxxxxxx');
}
</script>
这个是我的前台代码.
responseText 服务器返回的数据.
当时服务器上返回这样写的:特别注意的是需要加
response.addHeader("Access-Control-Allow-Origin", "*");
public String insertUserIngo(UserInfo userInfo,HttpServletResponse response) { // 跨域请求需要加下面这句话 response.addHeader("Access-Control-Allow-Origin", "*"); PrintWriter out = null; try { out = response.getWriter(); } catch (IOException e) { e.printStackTrace(); } //测试 System.out.println(userInfo.getPhone()+"888888888888888888888888"); //插入信息到数据库 userInfoSeivice.savaUserInfo(userInfo); if(userInfoSeivice.getUserDetail("777777")==null) { System.out.println("okokokokokokokoko"); } out.println("dddddddddddddddd"); return "zhangbin"; }