$ .ajax在本地主机上正常工作,但不在在线服务器上:500内部服务器错误
我使用ajax向服务器发送数据,它在本地主机上正常工作,但我在联机服务器上测试代码时返回错误500.
如何解决这个问题?
$('#btn_publier').click(function (e) {
var formdata = new FormData(document.getElementById('post'));
var file_data = $('#IMG_CDV').prop('files')[0];
formdata.append('file', file_data);
$.ajax({
url: '../wp-content/plugins/Carnet_voyages/publier.php',
type: 'post',
data: formdata,
dataType: 'text', // what to expect back from the PHP script, if anything
cache: false,
contentType: false,
processData: false,
success: function (result, statut) { // success est toujours en place, bien sûr !
if (result != "") {
alert(result);
location.reload();
}
},
error: function (resultat, statut, erreur) {
alert(erreur);
}
});
e.preventDefault();
});
错误500通常是从内部服务器错误发生
尝试 1.重新加载页面, 2.清除浏览器的缓存, 3.删除浏览器的Cookie, 4.疑难解答为504网关超时错误,而不是, 或直接考虑您的在线服务器或网站管理员的正确配置
了解其可能的原因也有利于:
1)权限错误。在大多数情况下,500内部服务器错误是由于一个或多个文件或文件夹的权限不正确造成的。在大多数情况下,PHP和CGI脚本的权限不正确是错误的。这些通常应该设置为0775(-rwxr-xr-x)。
2) A PHP Timeout. If your script connects to external resources and those resources timeout, an HTTP 500 error can occur. Timeout rules, or better error handling in your script, should help if this is the cause of the 500 error.
3) A Coding Error in .htaccess. While not as common, be sure to check that your site's .htaccess file is properly structured.
在我的情况下,我认为我的问题是2),因为我必须从本地资源上传文件到服务器;在localhost上测试,但不在线时,这是完美的工作!现在,我没有服务器配置权限,我会联系管理员,但是你有什么想法在服务器上修改什么? –
我看到的代码很好。在收到管理员的回复之前,我现在不能说。可能它可能是他们经常遇到的错误。与此同时,问自己这些问题 1)你是否缺少任何javascript插件文件或插件文件路径没有定义你遇到的500内部服务器错误。 2)主机服务器区分大小写检查变量值。 3)如果您在提醒流程之前移动到ajax。 – 12345678
以及我没有很好的经验与Ajax,但我不明白的是,如果脚本已在当地工作是什么问题呢?本地和外部服务器架构不是相同的? –
500错误表示问题出在您的PHP代码中。检查响应文本或服务器日志,希望会出现一个您可以诊断的错误。 –
通过查看客户端代码无法诊断服务器错误 – charlietfl
也应该使用适当的WordPress的ajax端点...不会进入'wp-content/plugins' – charlietfl