【问题标题】:When making an AJAX POST request with Yii, how is $_GET['ajax'] automatically set?使用 Yii 发出 AJAX POST 请求时,$_GET['ajax'] 是如何自动设置的?
【发布时间】:2013-02-23 01:46:22
【问题描述】:

我正在使用 Yii 框架开发一个基本的 CRUD 应用程序。我注意到动作函数中自动生成的代码通常包含以下几行:

// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if(!isset($_GET['ajax']))
     $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));

我想不通的部分是,即使我正在执行 AJAX POST,甚至当我使用 Firebug 或 Fiddler 检查请求中没有出现“ajax”参数时,这段代码也能正常工作。服务器是否向自己发出另一个 GET 请求,或者我不理解 $_GET 的某些内容?

【问题讨论】:

  • 你能给我们一个链接吗,你认为这发生在哪里?
  • 你能展示一下你是如何做 ajax 帖子的吗?
  • 现在我可以在 POST 中看到 'ajax' 参数。但这应该可以使用 $_GET 数组吗?

标签: php ajax yii cgridview


【解决方案1】:

http://www.yiiframework.com/forum/index.php/topic/19324-whats-isset-getajax-for-in-the-generated-code/

如果你使用 Yii 库进行 Ajax 调用,看起来它是由 Yii 设置的

【讨论】:

  • 是的,我现在可以在请求中看到它。我感到困惑的部分是为什么他们使用$_GET 来检查发布的参数。这对 GET 和 POST 都有效吗?
  • 认为它用于 GET 请求(在处理分页/网格重新加载以及删除处理时。为了简化他们的代码,我认为他们没有区别......
  • 这就是我想知道的。 $_GET 即使已发布,它仍然有效吗?因为只允许通过 POST 进行删除,并且该行肯定会出现在删除操作中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-30
  • 1970-01-01
  • 2013-10-22
  • 1970-01-01
  • 2015-07-24
相关资源
最近更新 更多