JAX-RS Web Service 通过浏览器工作,但不通过 XMLHTTPRequest
JAX-RS Web Service Working through browser but not through XMLHTTPRequest
我编写了 JAX-RS 服务,用于使用 apache 服务器下载文件:
服务的主要内容是-
@GET
@Produces("application/pdf")
public Response convertCtoF() {
String path = "D:''a.pdf";
File file=new File(path);
ResponseBuilder rb = Response.ok((Object) file);
rb.header("Content-Disposition","attachment; filename=a.pdf");
return rb.build();
}
当我通过网络浏览器访问它时,这是有效的。
但是当我通过XMLHTTPRequest访问时,它不起作用。它给出 XMLHttp.Status=0
客户端代码:
<!DOCTYPE html>
<html>
<head>
<script>
function Download()
{
var xmlhttp=new XMLHttpRequest();
xmlhttp.open('GET','http://localhost:8080/RESTExample/ABC/ctofservice',true);
xmlhttp.send();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
alert('xmlhttp.readyState == 4');
if ( xmlhttp.status == 200) {
alert('xmlhttp.status == 200');
}
else
{
alert(xmlhttp.status);
}
}
}
}
</script>
</head>
<body>
<h2>File Downloading Web Interface</h2>
<div id="myDiv"></div>
<button type="button" onclick="Download()">Download File</button>
</body>
</html>
它不适用于XMLHTTPRequest,因为您正在下载文件,并且出于安全原因,您不允许使用Ajax执行此操作。有各种解决方法可以尝试。我不会在这里重复这些,所以尝试在谷歌上搜索"ajax文件下载",然后选择你喜欢的方法。
相关文章:
- XMLHttpRequest未返回值-状态202
- XMLHttpRequest在移动设备上的chrome上不起作用
- AJAX简单错误.XMLHttpRequest无法加载http://localhost/mpl/getPage.php.
- 检查xmlhttprequest问题的消息
- 主线程上的同步XMLHttpRequest已弃用
- 如何定期发出xmlhttprequest
- javascript第三个XMLHttpRequest被拒绝.但前两个是允许的
- 上传带有XMLHttprequest的文件-多部分/表单数据中缺少边界
- 对象#<XMLHttpRequest>没有方法'完成'
- 在XMLHttpRequest之后重新初始化jQuery
- 如何将GreaseMonkey中的XMLHttpRequest延迟到目标页面加载完成
- Javascript XMLHttpRequest——只有第一个POST请求有效
- XMLHttpRequest - difference between Chrome & Firefox
- IE上的新XMLHttpRequest()出现JS Ajax未指定错误
- 非常简单的XMLHttpRequest不起作用
- 如何使用XMLHttpRequest下载文件
- XMLHttpRequest在$.ajax工作的地方给出了CORS错误
- XMLHttpRequest.open()AJAX中的参数url
- XMLHTTPRequest脚本中没有internet连接和超时
- 为什么当async标志设置为false时,xmlhttprequest中的代码可以工作,而当它设置为true时却不能工作