通过ajax读取JSon文件

时间:2013-10-02 22:53:28

标签: javascript json

这是我的Ajax请求:

$.ajax({     
type:    'POST',
url:   "http://xx.json",
//data: '{id:id}',
//data: '{providername:providername}',
crossDomain:    true,
dataType:   'jsonp',
jsonpCallback:    'loadData'
});

确定我的请求本身如果失败因为我需要在上面的数据变量中提供数据请求不确定我应该如何将我的数据发送到JSON来访问内容。以下是json

 {
  "loadData"      :   {
       "Facebook":    [
       {
        "email"    :   "karthim1982@yahoo.com",
        "first_name"   :   "Karthick"
     },
     {
        "email"    :    "mallika132-iit@yahoo.co.in",    "first_name"   :    "Mallika"
     }
  ],       
       "Google"   :    [
     {
        "email"    :      "jameson42@gmail.com","first_name"   :     "Jameson"
     },
     {
        "email"     :   "hariikriishnan@gmail.com","first_name"     :   "hari"
     }
  ]
   }
 }

请检查JSON是否有任何问题。 如何访问Facebook第1和第2封电子邮件或Google的第一个电子邮件或名字属性

1 个答案:

答案 0 :(得分:0)

如果您要求使用jQuery jsonp,您将在GET请求中获得一个名为callback的参数,例如:

http://your.url/out.json?callback=jQuery123456789

您需要在服务器端执行的操作是将输出包装在该回调中,而不是:

{"a": 1, "b": 2}

您需要像下面这样提供回复:

jQuery123456789('{"a": 1, "b": 2}')

在您的情况下,您似乎正在将callback重命名为loaddata。请记住,jQuery将为您构建此功能,您无需定义它。 需要定义的是将数据传递给的success回调。

对于JSONP,jQuery不会将响应加载为XMLHTTPRequest,而是加载为<script>标记,并在页面上秘密设置callback。这取决于您是否可以控制远程服务。