【发布时间】:2014-01-26 16:22:05
【问题描述】:
嗨,我基本上是在做一个上传器并使用 nginx 上传进度模块。我不明白为什么它在本地机器上的本地机器上运行良好(给 XMLHttpRequest readyState 4,javascript 进度条 % 相应增加)但是当我在服务器上部署它时似乎无法获得任何服务器响应(虽然它显然确实连接到 /progress,但一直给 XMLHttpRequest readyState 1)
就跟平常的nginx上传进度模块代码一样:
function fetch(uuid) {
req = new XMLHttpRequest();
req.open("GET", "/progress", true);
req.setRequestHeader("X-Progress-ID", uuid);
req.onreadystatechange = function () {
/* checking the state here ..*/
console.log(req.readyState);
console.log(req.status);
if (req.readyState == 4) {
if (req.status == 200) {
/* poor-man JSON parser */
var data = eval(req.responseText);
console.log(data.state);
if (data.state == 'done' || data.state == 'uploading') {
prog = Math.floor(100 * (data.received / data.size));
$("#progressbar").progressbar({value: prog});
$("#percentage").html(prog+"%");
}
if (data.state == 'done' || data.received >= data.size) {
window.clearTimeout(timeout);
}
}
}
}
req.send(null);
};
这里是控制台日志: 本地 nginx 实例正常
[22:12:25.734] POST http://localhost:8080/?X-Progress-ID=5b8702050a784e6604953201e398c99a [HTTP/1.1 200 OK 1335ms]
[22:12:25.677] "initialized"
[22:12:25.838] GET http://localhost:8080/progress [HTTP/1.1 200 OK 0ms]
[22:12:25.783] 2
[22:12:25.783] 200
[22:12:25.784] 3
[22:12:25.784] 200
[22:12:25.784] 4
[22:12:25.784] 200
[22:12:25.784] "uploading"
测试服务器不行
[00:16:20.638] POST http://00.mydomain.com/?X-Progress-ID=c65681d605911db0b8da3fb0e436d851 [HTTP/1.1 200 OK 2925ms]
[00:16:20.582] "initialized"
[00:16:20.738] GET http://00.mydomain.com/progress [HTTP/1.1 200 OK 293ms]
[00:16:21.039] GET http://00.mydomain.com/progress [HTTP/1.1 200 OK 304ms]
[00:16:20.979] 1
[00:16:20.979] 0
[00:16:20.979] 1
[00:16:20.979] 0
[00:16:20.979] 1
[00:16:20.980] 0
[00:16:21.341] GET http://00.mydomain.com/progress [HTTP/1.1 200 OK 304ms]
[00:16:21.286] 1
[00:16:21.286] 0
[00:16:21.287] 1
[00:16:21.287] 0
[00:16:21.287] 1
[00:16:21.287] 0
...keeps repeating till upload complete...
我的错误可能出在哪里的任何线索?
【问题讨论】:
标签: nginx upload xmlhttprequest uwsgi