在尝试下载文件之前,我试图找出文件是否存在。该文件是ClickOnce应用程序。
我已经尝试过以下代码,但这不起作用(可能是因为URL位于不同的服务器和域上?);
$.ajax({
url: 'http://www.example.com/somefile.ext',
type: 'HEAD',
error: function()
{
//File does not exist
},
success: function()
{
// File exists
}
});
是否有另一种解决方案,或者是否有办法让这个解决方案起作用?
答案 0 :(得分:0)
是的,如果URL位于其他服务器上,则此功能不起作用。如果要使其工作,则需要控制从中下载URL的服务器。如果是这样,你应该设置
Access-Control-Allow-Origin
标头,指向加载JavaScript的服务器名称。
有关详情,请参阅Stack Overflow问题 jQuery AJAX cross domain 。
答案 1 :(得分:0)
您无法轻松进行跨域调用(CORS)。在服务器上调用脚本来检查文件是否存在并返回相应的结果会更好更安全。
答案 2 :(得分:0)
除了其他人所说的,你还应该检查错误函数的errorThrown
参数是否为“Not Found”。否则,您可能假设在发生不同错误时文件不存在。
发生HTTP错误时,errorThrown会收到HTTP状态的文本部分,例如“未找到”或“内部服务器错误”。