Expressjs:从res.json接收数据时何时使用json.parse

时间:2017-07-16 15:18:47

标签: jquery json express

我从我的html文件中调用了一个快速api。 api返回以下代码:

$.get

我使用jQuery的$.get(url, {}, function(response) { var responseArray = JSON.parse(response); //this line is not needed });

调用上述API
JSON.parse

我的印象是我需要对回复做res.json。但它不是必需的。我在想stringify()将调用// In routes/web.php: $app->get('/', function () use ($app) { return $app->make('view')->make('home'); }); // In resources/views/default.blade.php: <html> <head>...</head> <body> <div id="whatever"> @yield('content') </div> </body> </html> // In resources/views/home.blade.php: @extends('default') @section('content') <p>I am the Home Page!</p> @endsection 函数将数组转换为JSON。显然,我的理解有一些漏洞。有人可以解释一下这里发生了什么。

2 个答案:

答案 0 :(得分:0)

您无需手动解析响应,因为jQuery在AJAX请求上的dataType参数的默认设置是“最佳猜测”。这意味着当收到响应时,jQuery将根据内容类型标题确定其格式。

在您的情况下,此标头看起来是application/json,因此jQuery会在内部为您重新序列化JSON字符串,并将结果对象提供给response参数中的处理函数。

答案 1 :(得分:0)

嗯,这很容易解释。 jQuery documentation says

  

的dataType   类型:字符串   服务器所需的数据类型。默认值:智能猜测(xml,json,脚本,文本,html)。

默认情况下,该调用智能猜测JSON。