gpt4 book ai didi

javascript - 请求问题 : Uncaught SyntaxError: Unexpected token/

转载 作者:行者123 更新时间:2023-11-30 16:32:31 26 4
gpt4 key购买 nike

我正在开发一个显示一些 JSON 数据的小应用程序在 ListView 中。为了接收数据,我使用了一个简单的请求。
我总是遇到同样的问题:

Uncaught SyntaxError: Unexpected token :

我的代码:

 $.ajax({
url: 'http://localhost/documents.json',
data: {
format: 'json'
},
error: function() {
$('#info').html('<p>An error has occurred</p>');
},
dataType: 'jsonp',
success: function(data) {
// do something with the data
},
type: 'GET'
});
});

我的 JSON 文件有效。我用 JSON 验证器检查了它。

最佳答案

如果使用 JSON.parse() 解析无效的 JSON(无论如何损坏)都不会生成 JavaScript 语法错误或任何体面的专用解析器(这就是 jQuery 所做的)。所有其他标准数据类型(XML、HTML、纯文本...)也是如此。所有症状都表明您期待 JSONP 但得到的是其他数据类型。内置浏览器网络 Pane 应该会准确显示您所获得的内容。

无论如何,如果您只需要 JSON 而只需要 JSON,您应该按如下方式简化代码:

  1. 省略协议(protocol)和主机:

    url: 'http://localhost/documents.json',

    应该是:

    url: '/documents.json',

    (可能不是必需的,但有助于避免错误。)

  2. 要求正确的数据类型:

    dataType: 'jsonp',

    应该是:

    dataType: 'json',
  3. 不要再次解析 jQuery 已经为您解析的内容:

    var json = $.parseJSON(data);

    应该是:

    var json = data; // Yeah, nothing :)

这对于本地 AJAX 应该足够了。如果您确实需要跨站点请求(我问了两次但从未得到答案),您必须调整您的服务器以返回适当的 CORS header 实现 JSONP 数据类型并更改您的客户端相应地编码,因为您将不再拥有 JSON——因为 JSONP 不是 JSON!

关于javascript - 请求问题 : Uncaught SyntaxError: Unexpected token/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33126434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com