JSONP中的标签错误无效

时间:2011-02-08 16:22:23

标签: javascript jquery ajax json cross-domain

我的json网址是:

http://app.websitename.in/getToken

上面的url按照JSON返回我:

 { token: "2cd3e37b-5d61-4070-96d5-3dfce0d0acd9%a00a5e34-b017-4899-8171-299781c48c72" }

修改:将其更改为

 { "token": "2cd3e37b-5d61-4070-96d5-3dfce0d0acd9%a00a5e34-b017-4899-8171-299781c48c72" }

调用以下代码

时,我仍然(仍然)收到无效标签错误

我的代码是:

 $.getJSON("http://app.websitename.in/getToken?callback=?", 
function(data) {
alert("success");
    alert("Symbol: " + data.token);
});

请帮帮我

由于

2 个答案:

答案 0 :(得分:7)

属性名称必须用双引号作为有效的JSON,例如:

{ token: "2cd3e37b-5d61-4070-96d5-3dfce0d0acd9%a00a5e34-b017-4899-8171-299781c48c72" }

必须是

{ "token": "2cd3e37b-5d61-4070-96d5-3dfce0d0acd9%a00a5e34-b017-4899-8171-299781c48c72" }

(请注意,“令牌”现在是双引号。)

JSON site的详细信息。 JSONlint也很有用。

有些JSON解析器是松散的,让你不要在属性名称周围放置双引号(特别是伪装成JavaScript解析器的那些),但从技术上讲,它是必需的。

答案 1 :(得分:1)

  

我的json网址是:   http://app.websitename.in/getToken

不,它不是(或者,如果是,那么它就坏了。)

卷曲:(6)无法解析主人'app.websitename.in'

如果我们假设您的意思是“example.com”,当您说“websitename.in”时(使用示例域名作为示例,那就是它们的用途),那么:

如果它以该形式返回该数据,则它无法将其包装在回调中,因此它是JSON而不是JSON-P。您需要JSON-P跨域运行。