将大数据发送到服务器,跨域

时间:2010-01-21 09:03:06

标签: javascript ajax cross-domain

我正在尝试从我的应用程序所在的许多不同服务器发送大量数据到我的 使用一些虚拟图像源,将我的数据作为GET查询传递。 ( img.gif AAA = XXX&安培; BB = YYY ...
查询很多次都会被删除。

我有更好的方式来发送数据跨浏览器吗?

2 个答案:

答案 0 :(得分:0)

如果您在发送数据时使用POST方法,那将是最好的。

 var msgSender = new ActiveXObject("Microsoft.XMLHTTP"); 
 msgSender.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 msgSender.setRequestHeader("Encoding", "Windows-1257")     
 msgSender.open("POST", "http://yourderver/page" ,true);
 msgSender.onreadystatechange = function(){...};
 var msg = "your very long message goes here";

 //preparing post data
 var strToSend = "someotherarg=somevalue" + username;
     strToSend+= "&msg=" + msg;
 strToSend = escape(strToSend);
 msgSender.send(strToSend);

如果你使用jQuery,解决方案会更容易 - 只需调用$.post()方法:http://docs.jquery.com/Ajax/jQuery.post

编辑: 但是,这不会跨域工作,除非您在服务器上指定'Access-Control'标头,并且客户端具有现代enouhg浏览器(FireFox 3.5+等)

所以,另一个解决方案是在你的页面中包含一个隐藏的IFRAME(页面存在于你的服务器上),其中包含一个表单,你可以调用该表单的Submit()来POST数据。

答案 1 :(得分:0)

拆分有效负载(例如,1024字节),然后使用多个GET请求发送。