调用JSON时出现200 ok错误

时间:2012-10-23 00:10:18

标签: javascript jquery json

这让我很难过。我实际上是第一次使用JSON,所以如果你觉得很明显的话请跟我一起。

我已经超越了所有其他错误,但现在我已成功连接到该页面,在firebug中显示200 OK错误,当然这是最不合适的错误。

<div class="placeholder"></div>
<script language="JavaScript" type="text/javascript">
   $(document).ready(function(){                     
     $(function(){
        $("a[href*='/site/apps/kb/cs/contactdisplay.asp']").click(function(e){
            var orgUrl = $(this).attr("href") + "&r=1";
           e.preventDefault();
           $.getJSON(orgUrl,
           function(data){
               $("placeholder").html("<strong>" + data.companyName + "</strong>");
           });
        });
     });
   });
</script>

单击此处的公司链接之一,它将调用动态URL以从目标中获取值: http://www.kintera.org/site/apps/kb/cs/contactsearch.asp?c=biIQI0NJKiKYF&b=8383853&submit=submit

会让你看到我在做什么。我无法控制渲染的源html,但我能够将我想要的输出放到json对象上。现在诀窍就是回归它。

是的,它调用的页面是HTML格式,但其中包含JSON对象。作为Workplace 6链接的示例,它从此位置拉出:http://www.kintera.org/site/apps/kb/cs/contactdisplay.asp?c=biIQI0NJKiKYF&b=8383853&sid=efIOKYMEJhIKLYMxHkH&r=1。如果您查看源代码,您将看到JSON。

2 个答案:

答案 0 :(得分:0)

问题的一部分(来自您发布的链接)是您从链接获得的href是指http:// ...而不是https:// - 这些计为不同的来源,因此CORS规则将中止ajax请求,并在Web控制台中将请求标记为“已取消”。

另一部分是您请求的页面不返回json。您希望让目标网页回复{"companyName":"foo"},其中mime类型为application/json

答案 1 :(得分:0)

通过从JSON更改为.load()来修复它。出于文档目的,这是我最终得到的结果。

<script>
$(document).ready(function(){
    //Call for results
    $(function(){
        $("a[href*='/site/apps/kb/cs/contactdisplay.asp']").click(function(e){
            var orgUrl = $(this).attr("href") + "&r=1";
            e.preventDefault();
            $.get(orgUrl, function(data){
                $(".placeholder").html( $(data).find(".nameContainer").html());
            })
        });
    });
});
</script>

这意味着我将代码从嵌入HTML的JSON中删除为HTML。