php Error 403 Forbidden when making post call with jquery AJAX call on same domain

ruarlubt  于 2023-05-16  发布在  PHP
关注(0)|答案(3)|浏览(136)

我有一个网页(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.phpphplogin目录下,mainmenu.phppost调用statusHistory.phpdb目录下

公共html目录:

phplogin目录:

db目录:

我应该做些什么不同的工作,我的职位要求工作?正如我所说,它确实工作了大约一个月,只是停止了...
任何帮助将不胜感激。

更多截图chrome开发者工具:
**网络页签:**x1c4d 1x

ej83mcc0

ej83mcc01#

问题是mod_security。我为我的域禁用了mod_security,我的问题得到了解决。我会联系我的托管公司,并要求他们妥善做好设置。
不知道为什么它就开始发生了。

gv8xihay

gv8xihay2#

如果它是工作之前,你应该检查你的.htaccess文件将位于您的网站的根目录.

ffscu2ro

ffscu2ro3#

如果您的客户端/用户安装了Google翻译扩展,并且您正在发送(* 通过 AJAX )用户输入的数据( 特别是来自TinyMCE或etc*),则Google翻译扩展可能会在用户输入的数据后面附加以下两行:

<p>&nbsp;</p>
<div id="gtx-trans" style="position: absolute; left: -28px; top: -8px;">&nbsp;</div>

当我从发送到(PHP)后端的TinyMCE数据中删除这些行时,问题就解决了。
也许这个发现会帮助其他人。

相关问题