Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
phpmvc&;AJAX:只允许AJAX调用特定的方法(操作)_Php_Jquery_Ajax_Model View Controller - Fatal编程技术网

phpmvc&;AJAX:只允许AJAX调用特定的方法(操作)

phpmvc&;AJAX:只允许AJAX调用特定的方法(操作),php,jquery,ajax,model-view-controller,Php,Jquery,Ajax,Model View Controller,我正在学习MVC的理念。下面是我的应用程序读取URL的方式:例如。 https://example.com/content/report =>content=controller和report=action就像大多数php mvc框架一样(我猜) 我有一些常见的操作,如报告,发送反馈,这些操作可以在没有任何身份验证或用户登录的情况下执行。使用ajax调用这些方法(操作),如: $.ajax({ url: "content/report", type : 'POST',

我正在学习MVC的理念。下面是我的应用程序读取URL的方式:例如。
https://example.com/content/report =>content=controller和report=action
就像大多数php mvc框架一样(我猜)

我有一些常见的操作,如
报告
发送反馈
,这些操作可以在没有任何身份验证或用户登录的情况下执行。使用ajax调用这些方法(操作),如:

$.ajax({
  url: "content/report",
  type : 'POST',
  data: {'contentId' : contentId, 'reportId': reportId}
}).done(function() {
  alert("Reported");
});
以下是
控制器中的
报告
操作:

public function reportAction(){
        $reported = false;
        if($this->request->isPost()) {
            //save and do stuff
        }

        $result = ["result"=>$reported];
        $this->jsonResponse($result);
    }
使用ajax一切都很好。但有一件事我注意到,当我试图在浏览器的导航栏中手动访问url时,它也起了作用,并返回了包含以下数据的空白页面:

{"result":false}
这是意料之中的。但我不希望用户能够像这样访问url或执行这样的方法/操作,但只能使用ajax,如果没有ajax,则向他们显示错误消息,如
页面未找到
等。那么我如何实现这一点呢???

这可能会有所帮助