0

我正在尝试使用下面的 jQuery.getJSON 调用 ShopSense API ( https://shopsense.shopstyle.com/shopsense/7268009frtd4rf ) 的 apiSearch 方法是代码。

$(document).ready( function() {
$.getJSON("http://api.shopstyle.com/action/apiSearch?jsoncallback=?",
    {
        pid: "uid3489-4324817-25",
        fts:"red+dress",
        min: 0,
        count: 10,
        format : "json"
    }, function(data) {
        console.log(data);
        $.each(data.products, function(i, product) {
            alert(product.name);
        });
    });
});

它会在 chrome 中导致错误“Uncaught SyntaxError: Unexpected token :”,在 firebug 中导致“invalid label”。

显然,这似乎是解析错误,但是当我尝试使用 jQuery.parseJSON 方法解析其响应 JSON 时,解析没有问题。

请帮我解决这个问题。

解决方案:

最后,我通过更改查询中的几个参数来运行我的代码。

使用回调=?插入 jsoncallback=?

格式 = jsonp

4

2 回答 2

0

正确的网址是:

http://api.shopstyle.com/action/apiSearch

不是:

http://api.shopstyle.com/action/apiSearch?jsoncallback=?

带有 GET 值的有效 url 采用模式:

protocol://host/path/file.extension?var1=value1&var2=value2 ... varn=valuen

你不能使用双?

于 2012-04-11T15:08:36.063 回答
0

最后,我通过更改查询中的几个参数来运行我的代码。

  1. 使用回调=?插入 jsoncallback=?

  2. 格式 = jsonp

一切正常。

$(document).ready( function() {
$.getJSON("http://api.shopstyle.com/action/apiSearch?callback=?",
    {
        pid: "uid3489-4324817-25",
        fts:"red+dress",
        min: 0,
        count: 20,
        format : "jsonp"
    }, function(data) {         
        $.each(data.products, function(i, product) {
            alert(product.name);
    });
});

感谢您的帮助和时间。

于 2012-04-12T11:27:15.253 回答