您好 我有一个网站html包含java脚本,网站上传到apache tomcat,网站假设联系另一台服务器并检索json数据,这不发生数据包跟踪显示tcp握手被FIN状态终止数据包发送在FIN状态校验和不正确之前,我不确定如何解决这个问题?你认为校验和错误是终止握手吗?并且要避免这种情况?以下是我的ajax jquery代码 注意:apache服务器和其他服务器都在同一个域中。 预先感谢 LS
$(document).ready( function() {
var home_add='http://myhome.net:3300/gateway';
$('#handshake').click(function(){
alert(" sending json data");
$.ajax({ /* start ajax function to send data */
url:home_add,
type:'POST',
datatype:'json',
contanttype:'text/json',
async: false,
error:function(){ alert("handshake didn't go through")}, /* call disconnect function */
data:{
"supportedConnectionTypes": "long-polling",
"channel": "/meta/handshake",
"version": "1:0"
},
success:function(data){
$("p").append(data+"<br/>");
alert("sucessful handshake")
}
})
})
})
答案 0 :(得分:1)
你似乎误解了same-origin policy。 XMLHttpRequest使用的同源策略是jQuery的AJAX功能的基础:
这两个主机名必须完全相同(不仅仅是更高级域名的一部分)。
示例:来自careers.stackoverflow.com
的网页可以访问相同的域但不是beta.careers.stackoverflow.com
,stackoverflow.com
或foo.stackoverflow.com
。
两个协议必须完全相同(http / https)。
示例:来自http://stackoverflow.com
的网页无法访问https://stackoverflow.com
和反之亦然。
两个端口号必须完全相同(Internet Explorer除外)。
示例: http://stackoverflow.com
的网页无法访问{{1}在Firefox,Chrome,Safari或Opera中反之亦然。
您必须执行以下操作之一:
在AJAX响应中使用Access-Control-Allow-Origin HTTP标头,明显的缺点是排除IE等浏览器以及其他不支持IE浏览器的旧版本
使用JSONP,is supported by jQuery虽然不适用于同步请求(无论如何都应避免,因为它们可以挂起浏览器)
来自服务器的代理HTTP请求将您的网页提供给其他服务器