Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ashx下载Javascript文件_Javascript_Jquery_.net_Ashx_Generic Handler - Fatal编程技术网

使用ashx下载Javascript文件

使用ashx下载Javascript文件,javascript,jquery,.net,ashx,generic-handler,Javascript,Jquery,.net,Ashx,Generic Handler,我需要创建一个调用通用处理程序(ashx)的JS方法 返回一个文件(字节数组)。此文件可以是xml、txt或Pdf。 我使用下面的代码解决了问题,但当文件不存在时, 我被重定向到另一个带有错误消息的页面(如果我在ashx中配置了404), 但我只想向用户显示一条带有错误的警报消息。我该怎么做 function GetFile(idAction, chave, fileType) { window.downloadfile = function (e) { window.l

我需要创建一个调用通用处理程序(ashx)的JS方法 返回一个文件(字节数组)。此文件可以是xml、txt或Pdf。 我使用下面的代码解决了问题,但当文件不存在时, 我被重定向到另一个带有错误消息的页面(如果我在ashx中配置了404), 但我只想向用户显示一条带有错误的警报消息。我该怎么做

function GetFile(idAction, chave, fileType) {
    window.downloadfile = function (e) {
        window.location = "MyHandler.ashx?parameter1="
            + idAction + "&parameter2=" + fileType + "&parameter3=" + chave;
    }
    downloadfile();
}

我建议您使用ajax,而不是重定向窗口。 发送一个HEAD HTTP方法来检查文件是否存在(显然没有下载),并根据该方法决定要做什么

function urlExists(url)
{
    var http = new XMLHttpRequest();
    http.open('HEAD', url, false);
    http.send();
    return http.status!=404;
}
根据该简单函数执行简单检查:

var urlToDownload = "MyHandler.ashx?parameter1=" + idAction + "&parameter2=" + fileType + "&parameter3=" + chave;

if(urlExists(urlToDownload)){
    window.location = urlToDownload;
} else {
    alert('File not exists.');
}
我的答案基于以下一个答案:

无需提及,为了使代码正常工作,您需要将服务器配置为在不存在文件的情况下返回404。谢谢。你帮了我很多忙!