2013-05-08 28 views
0

一個快速的問題:無法設定內容類型應用程序/ JavaScript的,而從node.js的返回JSONP

下面的代碼返回JSONP從文件JSON內容預期,但內容類型的響應是文本/ JavaScript。我怎樣才能將它轉換爲應用程序/ JavaScript?

我試着在res.jsonp之前添加標題,但出現了一些問題。

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庫:https://github.com/james-singh/JSONP-Tester/blob/master/app.js

+0

「文/ JavaScript的」是正確的內容類型爲JSONP響應,你爲什麼想將其設置爲「應用程序/ javascript' – ltebean 2013-05-08 08:37:49

+0

不太確定。我的服務器使用text/javascript內容類型拋出jsonp內容,我的客戶端應用程序構建在angularjs上,無法使用$ resources消耗。我可以用$ ajax讀取響應,但我需要能夠使用$ resources來使用它。 – James 2013-05-09 05:59:24

+0

你可以在問題:)中發佈angularjs代碼 – ltebean 2013-05-09 06:02:39

回答

0

'文本/ JavaScript的' 是正確的內容類型爲JSONP響應。

,如果你想發送的angularjs JSONP請求,試試這個:

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

是的,它後來使用$ http調用text/javascript – James 2013-05-12 15:40:48

相關問題