如何使用JQuery在JSFiddle上的回声功能?

20

我已经阅读了jsFiddle用户指南中关于JSON 回显功能的部分,但尝试创建一个使用jQuery将JSON消息回显到jsFiddle上的工作未成功。

我该如何创建一个jsFiddle来实现他们指南中的JSON回显?

data: {
    json: JSON.encode({
        text: 'some text',
        array: [1, 2, 'three'],
        object: {
            par1: 'another text',
            par2: [3, 2, 'one'],
            par3: {}
        }
    }),
    delay: 3
}

提供的一个例子是使用Mootools编写的,而我从未使用过Mootools。因此,将该Mootools示例简单地转换为JQuery即可。


2
谢谢,但我已经读过了。事实上我的问题就是基于那个。他们唯一的示例是在Mootools中。我希望有人能提供一个使用jQuery#ajax的简单示例。 - kasdega
1
@BoltClock 为什么要关闭这个问题?这是一个合理的问题,有一个合理的答案。JSFiddle在这个网站上经常用来解释或展示答案,并且他们没有一个关于如何使用假JSON消息的工具的可靠示例。Baz1nga给出了一个完全可以接受的答案。 - kasdega
这个问题被关闭了,因为它不适合SO社区。它要求提供示例,这意味着没有“正确”的答案。根据FAQ,您不应该问那些每个答案都同样有效的问题:“你最喜欢的______是什么?”- 如果您可以重新表述问题以更适合社区,那么请这样做,并标记问题以引起管理员的注意,他们将决定是否重新打开它。 - animuson
1
@animuson 我会在这里补充一些内容,但你的论点非常站不住脚。实际上,SO 上的几乎每个问题都是一个有多个正确答案的问题,而“正确”的答案归结为某人的个人偏好。例如:http://stackoverflow.com/questions/923486/what-are-the-best-google-tech-talks 或 https://dev59.com/MHRC5IYBdhLWcg3wMd9S - kasdega
现在你已经编辑成一个真正的、具体的问题,我重新打开了它。你链接的那两个问题都非常古老,前者如果今天提问可能不会被欢迎,因为网站政策已经发生了变化,并且已经被关闭。 - BoltClock
显示剩余2条评论
3个回答

24
var data = {
        json: $.toJSON({
            text: 'some text',
            array: [1, 2, 'three'],
            object: {
                par1: 'another text',
                par2: [3, 2, 'one'],
                par3: {}
            }
        }),
        delay: 3
}


$.ajax({
    url:"/echo/json/",
    data:data,
    type:"POST",
    success:function(response)
    {
       console.log(response);
    }
});

演示已经更新,我添加了一个额外的资源jquery-json。

演示中包含FireBug控制台视图(无需打开开发人员控制台即可查看返回结果)。


非常感谢,这非常有帮助。 - kasdega
如果安装了NoScript,这段代码会出错,因为jsFiddle包含类似jquery-json这样的临时库的方式。 - Brock Adams
@Brock Adams:我正在考虑将jsFiddle加入我的NoScript白名单并忘记它... - BoltClock
@BoltClock:我很久以前就做过了,没有帮助。关于这个问题有一个已发布的错误报告——我手头没有链接。 - Brock Adams
https://dev59.com/gWsz5IYBdhLWcg3wn5fa - Merlyn Morgan-Graham
有人能告诉我如何在视图中显示Firebug控制台吗? - RWC

13

您也可以使用JSON.stringify。

$.ajax({
  url:"/echo/json/",
  data:{
    json: JSON.stringify({
        text: 'some text',
        array: [1, 2, 'three'],
        object: {
            par1: 'another text',
            par2: [3, 2, 'one'],
            par3: {}
        }
      }),
    delay: 3
  },
  type:"POST",
  success:function(response) {
    console.log(response);
  }
});


4
你的意思是说,“also”指的是“必须”吗?https://dev59.com/gWsz5IYBdhLWcg3wn5fa - Merlyn Morgan-Graham
2
理论上,您可以准备自己的字符串转换函数,因此最好使用“也”。 - timfjord

6

类似这样:

$.get('/echo/jsonp/', { foo : 'bar', biz : 'buzz' })
    .success(function(data){ console.log (data) })

JS Fiddle示例

基本上,将您的$.ajax函数的url部分指向/echo/jsonp/,然后您就可以开始了。JSFiddle的文档说/echo/json/也可以使用,但看起来该特定URL此刻已经关闭;不过,即使不指定回调,使用JSONP服务也完全没有问题。


我试图使用 /echo/json,但它似乎无法为我返回任何数据。不过你的 JSONP 示例是有效的。 - kasdega
是的,看起来他们的 JSON 服务挂了。 - ajm
1
你有使用$.ajax()的示例吗?当他们的服务正常时,它应该是什么样子?或者你可以将你的示例从.get更改为其他方法吗? - kasdega

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接