}
//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", "
*");
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";