我一直被困在这一整天,getJSON只是不工作,我已经尝试过大量的例子,但它仍然没有用......任何帮助都会很棒。谢谢!
console.log("hi");
$.getJSON("https://pod.cscf.me/conversations/new.json", function(result)
{
console.log("workingggggg");
$.each(result, function(i, person)
{
console.log("itworks2");
});
});
它只输出第一个控制台日志“hi”。
以下是new.JSON文件中的代码:
<script>
//<![CDATA[
$(document).ready(function () {
var data = $.parseJSON( "[{\"value\":\"32\",\"name\":\"R M\"},{\"value\":\"17\",\"name\":\"nirkbirk@pod.cscf.me\"},{\"value\":\"15\",\"name\":\"Henry Hoggard\"},{\"value\":\"26\",\"name\":\"testproto@pod.cscf.me\"}]" ),
autocompleteInput = $("#contact_autocomplete");
autocompleteInput.autoSuggest(data, {
selectedItemProp: "name",
searchObjProps: "name",
asHtmlID: "contact_ids",
retrieveLimit: 10,
minChars: 1,
keyDelay: 0,
startText: '',
emptyText: 'No Results Found',
preFill: [{name : "",
value : ""}]
});
autocompleteInput.focus();
});
//]]>
</script>
我想访问var data = $.parseJSON etc
部分(包含名称和ID)
答案 0 :(得分:2)
打开https://pod.cscf.me/conversations/new.json会给我未经授权的回复401。
这是在确认我想要安装证书之后。有一个json响应说我需要登录但401响应状态标头导致请求失败。
另一件事是,您不能将站点A的xhr请求发送到站点B或从sub.A.com发送到A.com或从A:80.com发送到A:102.com,除非该站点(pod。 cscf.me)发送一个cors头。
我正在为firefox使用forcecors插件,因此可以使用它来向其他网站发出请求。
可以在维基百科上找到有关跨站点脚本和相同原始策略的更多信息,它解释了如何使用JSONP(与JSON不同)和CORS。
使用您提供的测试帐户登录并在控制台中运行代码后,我看到了您的意思,没有错误,但从不调用回调。打开https://pod.cscf.me/conversations/new.json我可以看到url没有返回JSON,响应是:
<script>
//<![CDATA[
$(document).ready(function () {
var data = $.parseJSON( "[]" )
这不是JSON,因此永远不会调用回调,因为将响应转换为javascript对象会无声地失败。