【发布时间】:2014-02-13 07:51:36
【问题描述】:
我正在设计一个 Web 应用程序,在其中我从用户输入创建一组文件,使用 JSZip 库压缩它们,然后尝试使用 Xhr 将文件发布到服务器。代码如下:
var content = zip.generate({type : "blob"});
var server_path = document.getElementById('build_server').value;
server_path = server_path + '/upload_project';
console.log(server_path);
global_oreq = new XMLHttpRequest();
var file_name = design_name + '.zip';
var formData = new FormData();
var json_build_answer = '';
global_oreq.open("POST", server_path, true);
global_oreq.onload = function(e) {
// json_build_answer = JSON.parse(oReq.responseText);
console.log('test');
console.log(global_oreq.responseText);
};
formData.append('file', content, file_name);
global_oreq.send(formData);
我对这段代码的问题是永远不会调用 onload 函数。我认为这是因为我的函数在请求的 ned 之前退出,所以我在参数中将 Xhr 请求同步设置设为 false。这导致了 NS_ERROR。我读到 Xhr 无法在远程域上执行请求。真的吗 ?你会怎么做来解决这个问题。 ? 从服务器端(我要发布到的那个)上看到的是文件被接收并返回了 json 响应。似乎客户端从未收到响应。
感谢您的帮助!
【问题讨论】:
标签: javascript jquery ajax post xmlhttprequest