Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据请求提供JSON或HTML?_Json_Node.js_Httprequest - Fatal编程技术网

根据请求提供JSON或HTML?

根据请求提供JSON或HTML?,json,node.js,httprequest,Json,Node.js,Httprequest,我使用的是nodejs,我想创建一个统一的处理程序,根据客户端请求的JSON或HTML提供服务 到目前为止,我只想在请求体中传递一个变量,我可以在提供服务之前检查它 app.use(function(req, res) { if (req.body.requested=='JSON') res.json(... else res.render(... 但是,不是在请求体中传递变量,而是在头中有什么东西,或者在我用来进行区分的jQuery.getJ

我使用的是nodejs,我想创建一个统一的处理程序,根据客户端请求的JSON或HTML提供服务

到目前为止,我只想在请求体中传递一个变量,我可以在提供服务之前检查它

app.use(function(req, res) {
    if (req.body.requested=='JSON')
        res.json(...
    else
        res.render(...

但是,不是在请求体中传递变量,而是在头中有什么东西,或者在我用来进行区分的
jQuery.getJSON()
jQuery.get()
之间有什么本质上的不同吗?

是的,更好的方法是简单地检查请求的
接受头。例如,如果标题显示:

Accept: application/json
然后将JSON发送回是合适的。或者比如说,

Accept: text/html
然后您发送回html。

…并且根据此消息,
getJSON()
会自动发送此标头。