JQuery Post Can';t到达控制器根目录上方的一个文件夹


JQuery Post Can't Reach Controller One Folder Above Root

我在谷歌或这里的关键词运气不好,所以我问这个问题,尽管我确信它很琐碎。。。

我想使用JQuery $.POST方法向位于服务器根目录上方的控制器请求信息。。。我在中找到了答案。ASP和J2EE,但不是简单的PHP/HTML/等。。。

这个控制器不需要实例化,所以简单的URL应该足以向它发送信息并请求响应。我已经使用JQuery很长时间了,所以我不需要询问我是否在使用的答案。POST是正确的,因为我已经使用这种AJAX方法两年多了。。。。只是MVC架构中没有。

我有一个PHP MVC构建的网站,我正在运行,我基本上只是想从我的控制器中获得一些信息,所以我正在尝试这个$.post("../../../controller/controllerScript.php", {...}, function() {...})。。。我还尝试过单独移除每个../,并对每个进行了测试。运气不好。。。到目前为止,我收到了一致的错误404消息,它找不到文件。这对我来说很有意义,因为它位于服务器根目录之上,不应该公开访问。

我知道这是因为我正在寻找服务器根目录之上的文件,但我认为这应该是MVC的魔力,我可以将根目录设置为公用文件夹,并具有更多的安全性和清晰的编程。我知道问题可能在于需要一个。HTACCESS文件,我做得很糟糕,或者其他一些URL重定向方法,但我只是不知道是哪种。

我的服务器文件夹架构

-controller
    -fileINeed.php
-model
-public
    -js
        -myPOSTfunction
-view

我想一个简单的action="../../../controller/fileINeed.php"至少可以让我将表单提交到一个空页面,这样我就可以调试它,但即使这样也找不到。它将URL更改为//BASE/controller/fileINeed.php,我确信这是根以上文件的服务器安全性的一部分。

有谁能迅速给我上MVC-101学校,让我看看我有多笨?lol

问题是JQuery是一种客户端语言,因此仅限于文档根目录,不能在上面遍历,这是一个安全功能,因为如果JQuery可以在根目录之上遍历,访问者也可以,这将导致重大安全问题。根据服务器的设置方式,您可以使用JQuery调用位于根目录中的php或任何其他服务器端应用程序,然后在该脚本中调用或引用位于其上方的应用程序。

在public''中创建一个调用程序php,然后从中包含它

include('/home/controller/fileINeed.php');

请记住,您需要弄清楚服务器根目录和公用文件夹之间的目录结构,并用它替换/home。