我正在尝试使用ajax检查服务器上是否存在文件。我用过下面的脚本 我的服务器名称就像 www.Mydomain.netp / Application_Folder /
var fileobj="../invoices/"+filename+".pdf";
var pdfurl;
$.ajax({
url: fileobj, //or your url
success: function(data){
alert('exists');
pdfurl = "http://Mydomain.orgi/Application_Folder/Invoices/" + Invoiceid + ".pdf";
window.open(pdfurl, "PopupWindow", "width=600,height=600,scrollbars=yes,resizable=no");
},
error: function(data){
alert('does not exists');
pdfurl = "http://AnotherDomain.orgi/Invoices/" + Invoiceid + ".pdf";
window.open(pdfurl, "PopupWindow", "width=600,height=600,scrollbars=yes,resizable=no");
},
});
如果文件存在那个时间我也会进入错误部分, 任何其他替代方法来做到这一点。以上脚本与localhost完美但不适用于生产环境
答案 0 :(得分:0)
您提供的代码段似乎使用来自两个不同域的调用" Mydomain.orgi"和#34; AnotherDomain.orgi"。您需要检查要请求的另一台服务器是否遵循CORS。我将建议控制/调试您的代码以及另一个使用名为Invoiceid
的变量的小事。请检查这是否也能很好地解决。
只要检查文件存在并且您已经在页面上包含了jquery,我就会尝试以下
$.get( "ajax/test.html", function( data ) {
$( ".result" ).html( data );
alert( "Load was performed." );
});
如果我遵循承诺模式,我会选择以下内容:
var jqxhr = $.get( "example.php", function() {
alert( "success" );
})
.done(function() {
alert( "second success" );
})
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "finished" );
});
了解更多here