A simpler way to test Ajax requests

Contributed by
Hamza Amrouche
in #26381.

用在 Symfony功能测试 中的 BrowserKit 提供了许多工具来模拟浏览器行为。 在 Symfony 4.1 我们添加了一个全新的功工具令 Ajax 请求更简单: xmlHttpRequest()

这个方法与当前的 request() 方法是一样的,而且接收同样的参数,但是它自动添加了一个 HTTP_X-REQUESTED-WITH 头作为必要的参数,因此你不必自行处理:

1
2
3
4
5
6
7
// Before / 之前
$crawler = $client->request('GET', '/some/path', [], [], [
    'HTTP_X-Requested-With' => 'XMLHttpRequest',
]);
 
// After / 之后
$crawler = $client->xmlHttpRequest('GET', '/some/path');

除错工具条中的改进了的 Ajax 面板

第一个微小但值得注意的改变是,指向 Ajax 请求链接的分析页面已经被移到表格中的第一列了,因此更容易点击到。

此外,当 Ajax request 导致异常时 (HTTP 状态码为 400 或更高),profiler 链接指向的是异常分析的面板,而不是默认的 request/response 面板:

在各种场合下,Ajax 面板的最大新功能是,实时显示了请求的周期,因此你总是能掌握哪个请求还在挂起中等待完成: