我有一个网页(mainmenu.php),网页中有一个javascript函数作为脚本。java script函数名:statusHistoryUpdate(status)
这个函数对一个php文件做了一个 AJAX post调用,这个php文件和我的网页位于同一个域。下面是函数代码:
function statusHistoryUpdate(status)
{
var data = {
reg_no: selectedRegNo,
status: status,
progress_id : selectedProgress
};
data = $(this).serialize() + "&" + $.param(data);
//alert(data);
$.ajax({
type: "POST",
dataType: "json",
url: "../db/statusHistory.php", //Relative or absolute path to response.php file
data: data,
beforeSend: function(){
$('#loading').toggle();
//$("#submitbutton").html( "<button id='buttonsubmit' class='btn btn-primary btn-lg btn-block' type='submit' value='Register' disabled> <span class='spinner-border spinner-border-md'></span>Loading..</button>");
},
success: function(data) {
getData();
},
complete: function(){
//$('.ajax-loader').css("visibility", "hidden");
$('#loading').toggle();
},
error: function(xhr, status, error) {
alert(xhr.responseText);
}
});
}
你会看到我的网址,我张贴到url: "../db/statusHistory.php"
该函数通过mainmenu.php中的按钮调用。
<button id="'.$progress_id.'" type="button" class="btn btn-primary btn-sm btn-block" onclick="updateStatus('.$progress_id.',\''.$status.'\',\''.$reg_num.'\')">Update Status</button>
所有这些工作直到这个周末发生了一些变化,现在当这个post调用被执行时,它给了我一个错误403 Forbidden,你没有权限访问/db/statusHistory. php
这是错误中的警报: AJAX 调用中的一部分:
我不知道是什么原因导致这一点,我已经检查了权限,我已经创建了一个新的php文件后,但它仍然给我同样的错误。
我在一个共享主机服务器上托管,使用PHP,jquery/3.4.0.我只能访问共享主机面板“CPanel”,而不是Linux服务器。
这里是我的主机目录和权限的屏幕截图。我的mainmenu.php在phplogin目录下,mainmenu.phppost调用statusHistory.php在db目录下
公共html目录:
phplogin目录:
db目录:
我应该做些什么不同的工作,我的职位要求工作?正如我所说,它确实工作了大约一个月,只是停止了...
任何帮助将不胜感激。
更多截图chrome开发者工具:
**网络页签:**x1c4d 1x
3条答案
按热度按时间ej83mcc01#
问题是
mod_security
。我为我的域禁用了mod_security
,我的问题得到了解决。我会联系我的托管公司,并要求他们妥善做好设置。不知道为什么它就开始发生了。
gv8xihay2#
如果它是工作之前,你应该检查你的
.htaccess
文件将位于您的网站的根目录.ffscu2ro3#
如果您的客户端/用户安装了Google翻译扩展,并且您正在发送(* 通过 AJAX )用户输入的数据( 特别是来自TinyMCE或etc*),则Google翻译扩展可能会在用户输入的数据后面附加以下两行:
当我从发送到(PHP)后端的TinyMCE数据中删除这些行时,问题就解决了。
也许这个发现会帮助其他人。