【发布时间】:2015-03-31 08:33:08
【问题描述】:
这是一个简单的多文件上传的javascript。
这个 javascript 在我的开发服务器上运行没问题。但是当我把它放在我的生产服务器上时,我在 AJAX Post 上收到了 500 错误。这可能是因为我必须更多地编辑 php.ini 吗?还是有其他问题?
var app = app || {};
(function(o){
"use strict";
var ajax, getFormData, setProgress;
ajax = function(data){
var xmlhttp = new XMLHttpRequest(), uploaded;
xmlhttp.addEventListener('readystatechange', function(){
if(this.readyState ===4){
if(this.status===200){
//console.log('here');
uploaded = JSON.parse(this.response);
if(typeof o.options.finished==='function'){
o.options.finished(uploaded);
}
}else{
if(typeof o.options.error ==='function'){
o.options.error();
}
}
}
});
xmlhttp.upload.addEventListener('progress', function(event){
var percent;
if (event.lengthComputable ===true){
percent = Math.round((event.loaded / event.total)*100);
//console.log(percent);
setProgress(percent);
}
});
xmlhttp.open('post', o.options.processor);
xmlhttp.send(data);
};
getFormData = function(source){
var data = new FormData(), i;
for( i=0;i<source.length;i=i+1){
data.append('file[]',source[i]);
}
data.append('ajax',true);
return data;
};
setProgress = function(value){
if(o.options.progressBar !== undefined){
o.options.progressBar.style.width=value? value + '%': 0;
}
if(o.options.progressText !== undefined){
o.options.progressText.innerText=value? value + '%': '';
}
};
o.uploader = function(options){
o.options = options;
if(o.options.files!== undefined){
ajax(getFormData(o.options.files.files));
}
};
}(app));
【问题讨论】:
-
HTTP '500' 错误是服务器本身的错误,因此您的 AJAX 帖子可以正常到达服务器 - 错误在于响应。
-
你建议我如何解决它?
-
是的,@Widor 说的。检查您的博客,解决问题(并通过在浏览器中正常打开它来测试 url),当它工作时再次返回您的 javascript 片段。
标签: javascript ajax