1

我想以 JSON 格式发送数据并获得响应以实现快速响应。所以我正在使用 AJAX。为什么我得到

"内容类型 text/html; charset=UTF-8 "

为什么得不到

内容类型应用程序/json

控制器

 public function testingMethod() {
        $this->autoRender = false;
        $urlVal = $_POST['urlVal'];
        $dataBack = json_encode($urlVal);
        if ($this->RequestHandler->isAjax()) {
            return $dataBack;
        }
    }

jQuery

$.ajax({
      type: "POST",
      url: pathname+"Frontends/testingMethod",
      data: 'urlVal=' + urlVal, 
      dataType: 'json',
      success: function (result) {
        console.log(result);
        alert(result);
     }
    });

标题

Response Headers

Connection  Keep-Alive
Content-Length  2382
Content-Type    text/html; charset=UTF-8     //why here not getting application/json
Date    Wed, 14 Aug 2013 10:17:38 GMT
Keep-Alive  timeout=5, max=94
Server  Apache/2.2.22 (Win32) PHP/5.4.3
X-Powered-By    PHP/5.4.3
4

1 回答 1

2

快速清单:

  1. .json扩展名添加到routes.php

    Router::parseExtensions('json');
    
  2. RequestHandler在控制器中加载类:

    public $components = array(
        'RequestHandler',
    );
    
  3. json在模型目录中创建一个文件夹View并将 JSON 视图放在那里。

  4. 附加.json到 URL:

    url: pathname+"Frontends/testingMethod.json",
    

这记录在JSON 和 XML 视图中。值得阅读完整的文档,因为我描述的步骤并不是唯一可行的方法。

于 2013-08-14T10:47:40.467 回答