从node.js返回jsonp时,无法将内容类型设置为application/javascript
一个简短的问题: 下面的代码按预期从文件返回jsonp和json内容,但响应的内容类型是text/javascript。如何将其转换为application/javascript 我尝试在res.jsonp之前添加header,但出现了一些问题从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
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一起工作