User.prototype._send = function(type, code, message, callback) {
if(!message && typeof code != 'number') {
callback = message;
message = code;
code = 200;
}
if(typeof message != 'string')
message = JSON.stringify(message);
if(type == 'connection' && this.connection) {
this.connection.writeHead(code || 200, {
'Content-Type': 'application/json',
'Content-Length': message.length
});
this.connection.end(message);
} else {
if(!this.listeners.length)
return this.message_queue.push(arguments);
var cx = this.listeners.slice(), conn;
this.listeners = [];
while(conn = cx.shift()) {
conn.writeHead(code || 200, {
'Content-Type': 'application/json',
'Content-Length': message.length
});
conn.end(message);
}
if(callback) callback();
}
};
函數現在返回JSON到客戶端。但我希望它返回JSONP。我做了大量的研究,試圖用.jsonp
替換.end
,但它不起作用。
http://rambleabouttech.blogspot.com/2012/08/jquery-json-vs-jsonp-using-nodejs.html – Renaissance
我不明白的是這個瀏覽器端或node.js。 jquery如何介入這裏。在express中有一個'.jsonp'響應,但不在native node.js中。使用快速'.jsonp'時不需要設置標題。同樣對於jsonp'Content-Type'必須是'application/javascript' – user568109