background image

}

//Send the request

xmlHttp.send(null);
 
servlet 代码:
代码如下:
 

protected

 void service(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, java.io.IOException {
resp.setHeader("Pragma", "no-cache");
resp.setHeader("Cache-Control", "no-cache");

//下面那句是核心

resp.setHeader("Access-Control-Allow-Origin", "

http://127.0.0.1/

§

*");

resp.setDateHeader("Expires", 0);
ServletOutputStream sos = resp.getOutputStream();

try

 {

sos.write(obj.toString().getBytes("GBK"));

catch

 (Exception e) {

System.out.println(e.toString90)
} finally {

try

 {

sos.close();

catch

 (Exception e) {

LOG.error(e);
}
}
}
 
代码在本机测试是可以的,待过两天,我把 servlet 放到服务器上去,然后再本地测试。
上面的方式虽然很完美的解决了问题,但是上面的文章也说了。可能存在安全问题,而且
新标准是否都支持还是个问题,所以我们可以套用另外一种取巧的方式来完成同样的效
果,因为 js 不存在跨域问题,如果我们服务器的 servlet 返回的是 JS 脚本,那就可以了。
我们可以在 A 工程的 js 中使用 javascript 的 src 来访问 B 工程的 servlet,然后通过 servlet
输出的 js 脚本来传递数据。因此根据这个思想我又做了下面代码的测试:
页面的 JS 代码:
代码如下:
 

function

 loadAjax(){

id="testesbscript";