gpt4 book ai didi

jQuery:由于字符串包含冒号,jsonp 失败

转载 作者:行者123 更新时间:2023-12-01 04:23:58 26 4
gpt4 key购买 nike

我使用 jQuery 的数据类型“jsonp”从 API 获取 JSON 字符串。操作失败,因为返回的 obj 包含带有“:”冒号的字符串。

在这里查找 fiddle :http://jsfiddle.net/ezmilhouse/vZjV4/1/

var url = 'http://api.spreadshirt.com/api/v1/shops/329852/articles?fullData=true&locale=us_US&offset=0&attributeSet=staticShop&mediaType=jsonp';

$.ajax({
cache: false,
callback: "callback",
dataType: 'jsonp',
pageCache: false,
url: url,
callbackParameter: "callback",
success: function(data, status, jqXHR) {
console.log(data);
}});

返回的 obj 看起来像这样,它是有效的 JSON(使用 jsonlint.com 测试):

{"articles": [
{
"name": "Honoring Generations of Mothers - Youth TShirt",
"description": "t-shirt for women, Brand: ALO"
}
]}

但是 jQuery 抛出了

unterminated string literal

错误,因为它不喜欢“品牌”后面的冒号

"description": "t-shirt for women, Brand: ALO" // colon causes error

冒号是否需要转义才能与 jQuery 的 jsonp 一起使用?有什么解决方法吗?

谢谢

最佳答案

我得到了你的异常(exception),但原因不是冒号,你的 jsonp 响应格式错误(它非常大,大约 38k 个字符,在我看来它仅限于 64k 或类似的东西,所以它缺少结尾)。

结尾为:"size":{"id":"2"},"

"末尾是未终止的字符串文字

如果您关闭它(即 "size":{"id":"2"}}]};),那么浏览器才能够解析该 jsonp。

编辑

我可以从 Chrome 获得完整的响应,但它的开发工具只显示其中的一部分,我错了。将在 IE 中检查它。

编辑2

如果你在 IE 开发工具中检查你的响应,你会发现 jsonp 中有两次换行符,每次都在 Brand: American Apparel 之后,因此它破坏了字符串,并且 js 无法解析 jsonp。

关于jQuery:由于字符串包含冒号,jsonp 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8049610/

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