ajax – 获取控制器内的环境
发布时间:2020-12-16 01:35:07 所属栏目:百科 来源:网络整理
导读:我的一个控制器中只有通过 AJAX访问的情况,我有以下代码. if (!$request-isXmlHttpRequest()) { $response = new Response(); $response-setContent('AJAX requests only!'); return $response;} 当我测试时,这给了我一个问题,因为该请求实际上并未通过AJAX
我的一个控制器中只有通过
AJAX访问的情况,我有以下代码.
if (!$request->isXmlHttpRequest()) { $response = new Response(); $response->setContent('AJAX requests only!'); return $response; } 当我测试时,这给了我一个问题,因为该请求实际上并未通过AJAX进行.这样每次都会破坏我的测试.我该如何解决这个问题呢? 我的想法: >我试图设置服务器标头,但绝对没有成功. 其他人有任何其他想法或提示,我错过了上述工作之一吗?
查看类ServerBag中的请求和方法getHeaders中的isXmlHttpRequest代码,下面的代码应该可以解决这个问题:
$client->request( 'GET','/path/to/test',array(),array( 'HTTP_X-Requested-With' => 'XMLHttpRequest',) ); 我没有亲自测试,但我认为它应该有效. Request中的代码行用于检查http请求是否是XmlHttpRequest. return 'XMLHttpRequest' == $this->headers->get('X-Requested-With'); 在代码中,使用以下命令设置$this->标头: $this->headers = new HeaderBag($this->server->getHeaders()); getHeaders方法创建一个标头数组.每个以HTTP_开头的服务器变量加上一些特殊的服务器变量(如CONTENT_TYPE)都放在此数组中. 希望这可以帮助. 问候,马特 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |