解决 jQuery.ajax#get 中的“意外令牌冒号 JSON”错误
在尝试从简约 API 检索 JSON 数据时当您在 Node.js 中创建时,您在 Chrome 中遇到了“Unexpected token :”错误。此错误通常是由于服务器的预期 JSON 响应与实际 JSON 响应不匹配而发生。
使用 jQuery.ajax#get 进行 AJAX 调用并将 dataType 指定为 'jsonp' 时,服务器响应需要“填充”(P) 以支持 JSONP 请求。 JSONP 是一种通过将 JSON 数据包装在函数调用中来允许跨域请求的技术。
要解决此问题,您需要修改服务器端代码以在响应中包含填充。在 Node.js 代码中,添加以下行:
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); }
或者,如果您使用的是 Express.js,则可以使用 res.jsonp() 方法,该方法会自动处理添加填充:
app.get( '/', function( req, res ) { console.log( 'req received' ); res.jsonp({ Name : "Tom", Description : "Hello it's me!" }); });
通过这些修改,服务器将发送封装在函数调用中的 JSONP 响应,该响应可以由 jQuery.ajax#get 解析,而不会遇到“意外令牌”错误。
以上是如何修复 jQuery.ajax#get 中的“意外令牌冒号 JSON”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!