Ajax端点应该如何响应非ajax请求?

时间:2012-09-14 16:59:29

标签: php ajax codeigniter jquery

我正在编写后端以响应ajax查询。我正在使用Codeigniter,我的控制器由许多这些函数组成。

public function name_change()
{
    if($this->input->is_ajax_request())
    {
        //Grab the Inputs
        //Do something
        //Respond
    }
    else
    {

    }           
}

我唯一的问题是我应该如何处理不是Ajax请求的情况?没有理由通过非ajax请求访问这些控制器功能。我能想到的选择是。

  • 发送无回复
  • 抛出错误页面(我假设我将使用状态代码200或403)

1 个答案:

答案 0 :(得分:5)

黄金法则永远不会信任用户输入

因此,无论数据来自ajax请求 - 还是仅发送到函数 - 您的控制器都应该认为它已被污染并进行完全验证,用户身份验证等。

因此,如果有人在没有ajax请求(无论是有意还是无意)的情况下到达那个控制器,那真的很重要 - 所以如果他们提交的数据有效,那就让它通过。

如果没有 - 只是向客户抛出有用的错误消息(特别是如果他们偶然到达那里)。