SilverStripe如何返回JSON头

SilverStripe如何返回JSON头,json,http-headers,silverstripe,Json,Http Headers,Silverstripe,我的控制器方法Foo()(通过AJAX请求调用)使用JSON\u encode($data)将JSON打印到页面。我试图通过使用 header('Content-Type: application/json'); 但从我的浏览器开发工具中,我看到了AJAX响应: Content-Type:text/html; charset=utf-8 我假设JSON头没有正确发送。这是发送JSON头的正确方式吗?Faloude在过去我做过返回SS_HTTPRequest::send_file($file,

我的控制器方法
Foo()
(通过AJAX请求调用)使用
JSON\u encode($data)
将JSON打印到页面。我试图通过使用

header('Content-Type: application/json');
但从我的浏览器开发工具中,我看到了AJAX响应:

Content-Type:text/html; charset=utf-8

我假设JSON头没有正确发送。这是发送JSON头的正确方式吗?

Faloude在过去我做过
返回SS_HTTPRequest::send_file($file,$fileName,'Content Type:text/csv')用于返回带有标题的csv文件。我猜您可以将第3个参数更新为
application/json
,它应该可以正常工作。

在控制器上下文中,您可以添加如下标题:

$this->getResponse()->addHeader('Content-type', 'application/json');
如果是从控制器外部执行此操作,则需要创建一个新的
SS_HTTPResponse
对象,并将其与添加的头一起返回,如上所述。在silverstripe 4模块中执行此操作的
silverstripe/graphql