我使用 jQuery 的 dataType 'jsonp' 从 API 中获取 JSON 字符串。操作失败,因为返回的 obj 包含其中包含“:”冒号的字符串。
在这里找到小提琴: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?任何解决方法?
谢谢