首页  >  文章  >  web前端  >  如何修复 jQuery.ajax#get 中的“意外令牌冒号 JSON”错误?

如何修复 jQuery.ajax#get 中的“意外令牌冒号 JSON”错误?

Barbara Streisand
Barbara Streisand原创
2024-10-19 22:57:02582浏览

How to Fix the

解决 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn