我的关键字在谷歌或这里没有太多运气,所以我问这个,即使我确定它是微不足道的......
我想使用JQuery $.POST
方法从位于服务器根目录之上的控制器请求信息...我在.ASP和J2EE中找到了答案,但不是简单的PHP / HTML /等。 ..
此控制器不需要实例化,因此简单的URL应足以发送信息并请求响应。我已经使用了很长时间的JQuery所以我不需要答案,问我是否正确使用.POST,因为我已经使用了这个AJAX方法超过两年....只是没有在MVC架构中。
我有一个PHP MVC内置网站,我正在运行,我基本上只想从我的控制器获取一些信息所以我正在尝试这个$.post("../../../controller/controllerScript.php", {...}, function() {...})
...我也尝试删除每个{{1}单独测试每个。没有运气...到目前为止,我得到了一致的错误404消息,它无法找到该文件。这对我来说很有意义,因为它位于服务器根目录之上,不应公开访问。
我知道这是因为我在服务器根目录上面找一个文件,但我认为这应该是MVC的魔力,我可以将root设置为公共文件夹,并且具有更多的安全性和清晰度节目。我知道问题可能在于我需要一个.HTACCESS文件,或者其他一些URL重定向方法,但我只是不知道哪个。
我的服务器文件夹架构
../
我认为一个简单的-controller
-fileINeed.php
-model
-public
-js
-myPOSTfunction
-view
至少会让我将表单提交到空白页面,所以我可以调试它,但即便找不到它。它将URL更改为action="../../../controller/fileINeed.php"
,我确信它是根目录下文件的服务器安全性的一部分。
任何人都能快速给我一个MVC-101学校并告诉我我是多么愚蠢?洛尔
答案 0 :(得分:1)
问题是JQuery是一种客户端语言,因此仅限于文档根目录并且无法遍历上面,这是一个安全功能,因为如果JQuery可以遍历根目录,那么访问者可能会导致重大安全问题。根据服务器的设置方式,您可以使用JQuery调用php或驻留在根目录中的任何其他服务器端应用程序,然后在该脚本内部进行调用或引用位于其上方的应用程序。
在public \中创建一个调用者php,然后从那里包含它
include('/home/controller/fileINeed.php');
请记住,您需要找出服务器根目录和公用文件夹之间的目录结构,并用它替换/ home。一些使用/ www。