Java 使用jquery打开新窗口
我有一个ajax调用,它向Servlet发送一个值,Servlet创建一个html文件,然后返回已创建的html文件的绝对路径。Java 使用jquery打开新窗口,java,jquery,ajax,servlets,Java,Jquery,Ajax,Servlets,我有一个ajax调用,它向Servlet发送一个值,Servlet创建一个html文件,然后返回已创建的html文件的绝对路径。 服务器的响应是 "C:\Users\Ker\Documents\NETBEANS PROJECT\Titanium\build\web\default\result.html" 在阿贾克斯 $(function() { $("#BTNRUN").click(function() { var html = $
服务器的响应是
"C:\Users\Ker\Documents\NETBEANS PROJECT\Titanium\build\web\default\result.html"
在阿贾克斯
$(function() {
$("#BTNRUN").click(function() {
var html = $("#HTML").val();
var body1 =html.replace('%','^');
var body2=body1.replace('&','|');
var css = $("#CSS").val();
var js = $("#JS").val();
var dataString = 'RUN=1&BODY=' + body2
+ '&CSS=' + css + '&JS=' + js;
$.ajax({
type: "POST",
url: "TitaniumServlet",
data: dataString,
success: function(data) {
window.open(data);
}
});
return false;
});
});
它打开了一个新的浏览器,但我总是进入一个空白页。地址有问题吗
编辑:
据我所知,您已经在应用程序的上下文路径上创建了文件和存储。如果新创建的文件位于上下文路径中,则可以直接使用相对路径或上下文路径访问文件,并使用服务器地址在新窗口中打开文件 您的Servlet代码包括以下行以获取上下文路径:
//after your line writer.write(html codes here);
String serverAddrs = request.getServerName()+":"+request.getServerPort();
String contextPath = "http://"+serverAddrs + main_path ;
//main_path is your context path
contextPath = contextPath+"/result.html";
System.out.println(contextPath);
return contextPath;
可以显示servlet代码吗?尝试显示变量“data”是什么。在这行“success:function(data){”add“console.log(data);“console中出现了什么?”@migueljimenezz之后,我提到了数据的值“C:\Users\Ker\Documents\NETBEANS PROJECT\Titanium\build\web\default\result.html”对不起。可能是数据没有协议的问题吗?因为路径不在服务器中,所以将文件:///放在数据之前:window.open('file://'+data);@migueljimenezz我也试过,但结果相同。
//after your line writer.write(html codes here);
String serverAddrs = request.getServerName()+":"+request.getServerPort();
String contextPath = "http://"+serverAddrs + main_path ;
//main_path is your context path
contextPath = contextPath+"/result.html";
System.out.println(contextPath);
return contextPath;