为了支持JSONP请求,服务器必须在响应中包含P
或“Padding ”。
jQuery111108398571682628244_1403193212453({"Name":"Tom","Description":"Hello it's me!"})
语法错误,"Unexpected token:"
是因为JSONP被解析为JavaScript,其中JSON{...}
也代表blocks。它仅利用JSON和JavaScript的相似语法来定义要传递给全局函数调用的数据。
默认情况下,jQuery将包含callback
带有函数名称的query-string参数:
var callback = req.query.callback;
var data = JSON.stringify({
Name : "Tom",
Description : "Hello it's me!"
});
if (callback) {
res.setHeader('Content-Type', 'text/javascript');
res.end(callback + '(' + data + ')');
} else {
res.setHeader('Content-Type', 'application/json');
res.end(data);
}
Expressjs还包括res.jsonp()
已经实现此条件的:
app.get( '/', function( req, res ) {
console.log( 'req received' );
res.jsonp({
Name : "Tom",
Description : "Hello it's me!"
});
});