我的控制器方法Foo()
(通过AJAX请求调用)使用打印JSON到页面json_encode($data)
.我正在尝试使用正确的http标头
header('Content-Type: application/json');
但是从我的浏览器开发工具中我读到了AJAX响应:
Content-Type:text/html; charset=utf-8
我假设没有正确发送JSON标头.这是发送JSON标头的正确方法吗?
从Controller上下文中,您可以像这样添加此标头:
$this->getResponse()->addHeader('Content-type', 'application/json');
如果您是从Controller外部进行的,那么您需要创建一个新SS_HTTPResponse
对象并使用添加的标头返回它,如上所述.下面是一个例子的silverstripe/graphql
这样做(在SilverStripe 4模块).