Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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
从node.js返回jsonp时,无法将内容类型设置为application/javascript_Javascript_Node.js_Jsonp_Content Type - Fatal编程技术网

从node.js返回jsonp时,无法将内容类型设置为application/javascript

从node.js返回jsonp时,无法将内容类型设置为application/javascript,javascript,node.js,jsonp,content-type,Javascript,Node.js,Jsonp,Content Type,一个简短的问题: 下面的代码按预期从文件返回jsonp和json内容,但响应的内容类型是text/javascript。如何将其转换为application/javascript 我尝试在res.jsonp之前添加header,但出现了一些问题 var express = require("express"); var fs = require("fs"); var server = express(); server.set("jsonp callback", true); server.g

一个简短的问题:

下面的代码按预期从文件返回jsonp和json内容,但响应的内容类型是text/javascript。如何将其转换为application/javascript

我尝试在res.jsonp之前添加header,但出现了一些问题

var express = require("express");
var fs = require("fs");

var server = express();
server.set("jsonp callback", true);
server.get("/", function(req, res){
    res.sendfile(__dirname+'/index.html');
});
server.get("/jsonp", function(req, res) {
    fs.readFile( __dirname + '/test.json', function (err, data) {
        if (err) {
            throw err; 
        }
        console.log(data.toString());
        res.jsonp(JSON.parse(data.toString()));
    });
});
server.listen('8000');
谢谢你的帮助


Github repo:

'text/javascript'是jsonp响应的正确内容类型


如果要在angularjs中发送jsonp请求,请尝试以下操作:

function jsonp_callback(data) {
    console.log(data);
} 
$http.jsonp("http://localhost:8080/jsonp?callback=jsonp_callback");

“text/javascript”是jsonp响应的正确内容类型,为什么要将其设置为“application/javascript”不太确定。我的服务器抛出文本/javascript内容类型的jsonp内容,而基于angularjs构建的客户端应用程序无法使用$resources使用这些内容。虽然我可以用$ajax读取响应,但我需要能够使用$resources来使用它。您是否可以发布问题中的angularjs代码:)$resources使用json响应,将您的服务器代码更改为:“res.send(json.parse(data.toString());”,如果您想用angularjs发送jsonp请求,它应该可以工作,试试这个:函数jsonp_callback(data){console.log(data);}$http.jsonp(“);是的,它后来在使用$http调用时与text/javascript一起工作