Javascript 如何捕获由于跨域post请求而下载的文件? 我不能使用Ajax,因为我没有访问第三方服务器的权限 提交表单后,文件下载将自动开始 我想将这个文件(它是一个CSV)导入到一个数组中,但为此我需要以某种方式捕获它

Javascript 如何捕获由于跨域post请求而下载的文件? 我不能使用Ajax,因为我没有访问第三方服务器的权限 提交表单后,文件下载将自动开始 我想将这个文件(它是一个CSV)导入到一个数组中,但为此我需要以某种方式捕获它,javascript,jquery,forms,post,Javascript,Jquery,Forms,Post,我所研究的所有示例都显示了对AJAX调用的响应的捕获,由于CORS的原因,我无法使用它 当前代码包括一个post表单和一个提交函数 由于CORS约束,这不起作用: $('#f1') .ajaxForm({ url : $('#f1').attr('action'), type: 'post', dataType : 'document', crossDomain: true, success : function (response) {

我所研究的所有示例都显示了对AJAX调用的响应的捕获,由于CORS的原因,我无法使用它

当前代码包括一个post表单和一个提交函数

由于CORS约束,这不起作用:

 $('#f1')
.ajaxForm({
    url : $('#f1').attr('action'), 
    type: 'post',
    dataType : 'document',
    crossDomain: true,
    success : function (response) {
        alert("The server says: " + response);
    }
})
这当然有效,但文件会下载到文件系统:

 $('#f1').submit()

我需要以某种方式从post响应中提取附件并将其加载到变量中。

因此,要么(a)从您的服务器请求文件,然后使用您的服务器从其他服务器请求文件,最后将其返回到浏览器(从您的服务器)。或者(b)让用户选择下载的文件,然后加载其内容,最后像通过ajax获得文件一样使用它们。您将如何向服务器发送请求,然后完成请求?我没有服务器端编码经验,我会使用PHP,只需调用
file\u get\u contents
,然后使用
echo
生成输出。基本上,我将使用示例1中所示形式的代码:
http://php.net/manual/en/function.file-get-contents.php
除此之外,您还必须处理表单的字段并将其传递到外部服务器。您可以查看浏览器生成的请求头并克隆重要字段。您需要按照上面链接的示例4中讨论的方式传递它们。您可能希望更容易地查看
FileReader
对象和方法
.readAsDataUrl