我想获取的是这个地址https://edu.hxpad.com/sandbox/API3.0/Info_LoginOnline/中的数据,但是我用jquery的getjson始终获取不到,而将这个网址直接在浏览器中打开去能看到数据。这是为什么???
我的代码如下
$.getJSON("https://edu.hxpad.com/sandbox/API3.0/Info_LoginOnline/",function(data){
         alert("success");
});实在是搞不懂了,请教一下大家。还有我看很多地址都是类似于这样的
http://api.flickr.com/services/feeds/photos_public.gne?tags=car&tagmode=any&format=json&jsoncallback=?
后面加了很多问号之类的,有何区别,谢谢。

解决方案 »

  1.   

    楼主 由于浏览器的安全限制,js无法跨域进行操作
    那么 传说中的 jsonp 就诞生了, 需要 服务端 和 客户端 达成一致(提供一个接口),比如
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="gb2312" />
    <title></title>
    </head>
    <body>

    <script>
    function test(x){
    alert(x.name)
    }
    </script>
    <script src="jsonp.js"></script>
    </body>
    </html>jsonp.js
    var obj = {
    "name": "Tom"
    };
    test(obj);而jquery的getJSON就是用了这种方法http://api.flickr.com/services/feeds/photos_public.gne?tags=car&tagmode=any&format=json&jsoncallback=?jQuery 将自动替换 ? 为正确的函数名楼主可以试一下
    http://api.flickr.com/services/feeds/photos_public.gne?tags=car&tagmode=any&format=json&jsoncallback=test那么返回的内容将是
    test({
    "title": "Recent Uploads tagged car",
    "link": "http://www.flickr.com/photos/tags/car/",
    "description": "",
    "modified": "2012-05-28T15:07:24Z",
    "generator": "http://www.flickr.com/",
    "items": [
      

  2.   

    跨域了。浏览器禁止JS进行跨域操作。如果你操作的URL返回的是一个JSON字符串,那就只能通过服务器端采集来实现了。自己google一下吧:AJAX 跨域访问
      

  3.   

    楼主 必须要满足 jsonp 的格式啊。
    而这个链接打印的是一个 {...}要不就只有 后台来抓取页面了。
      

  4.   


    是的,问题解决了。服务器端返回的是json数据,不支持jsonp。所以用这种方法获取不到。