0

在尝试下载文件之前,我试图找出文件是否存在。该文件是一个ClickOnce应用程序。

我已经尝试过以下代码,但这不起作用(可能是因为 URL 位于不同的服务器和域上?);

$.ajax({
    url: 'http://www.example.com/somefile.ext',
    type: 'HEAD',
    error: function()
    {
        //File does not exist
    },
    success: function()
    {
        // File exists
    }
});

还有另一种解决方案,还是有办法让这个解决方案起作用?

4

3 回答 3

0

是的,如果 URL 位于不同的服务器上,这将不起作用。如果您想完成这项工作,您将需要控制下载 URL 的服务器。如果是这样,您应该将Access-Control-Allow-Origin标头设置为加载 JavaScript 的服务器的名称。

有关更多详细信息,请参阅 Stack Overflow 问题jQuery AJAX 跨域

于 2012-09-17T12:51:19.247 回答
0

你不能轻易地进行跨域调用(CORS)。在您的服务器上调用一个脚本来检查文件是否存在并返回相应的结果会更好、更安全。

于 2012-09-17T12:52:12.550 回答
0

除了其他人所说的之外,您还应该检查errorThrown错误函数的参数是否为“未找到”。否则,当真正发生不同的错误时,您可能会假设文件不存在。

发生 HTTP 错误时,errorThrown 会接收 HTTP 状态的文本部分,例如“未找到”或“内部服务器错误”。

于 2012-09-17T12:56:43.553 回答