我的Url没有回复json数据

时间:2012-10-18 08:38:40

标签: javascript json

我试图通过使用以下代码从json url获取响应:

$(document).ready(function(){ 
    //attach a jQuery live event to the button
    $('#getdata-button').live('click', function(){
        alert("get data"); 
        $.getJSON('http://vamdemo2.e-isg.com/vamsyncservices/api/site/GetAllSites?username=Admin&password=password', function(data) {  
            alert(" data alert"+data); //uncomment this for debug
        });
    });
});

我没有从上面的网址得到任何回复。如果我将网址从http://vamdemo2.e-isg.com/vamsyncservices/api/site/GetAllSites?username=Admin&password=password更改为https://www.googleapis.com/freebase/v1/text/en/bob_dylan,则会收到回复。如果我在浏览器中打开两个url,两者都有数据..但是,当我尝试使用javascript从url获取响应时,一个url仅给出响应。问题出在哪儿??为什么另一个网址没有给出任何回应?

请给我任何解决方案...... 提前谢谢......

1 个答案:

答案 0 :(得分:1)

我已将您的代码放入浏览器中,对我而言,这两个网址都无效。

即使是googleapis.com网址,当我在Chrome中加载代码并按F12时,我会收到此错误:

XMLHttpRequest cannot load https://www.googleapis.com/freebase/v1/text/en/bob_dylan. Origin null is not allowed by Access-Control-Allow-Origin.

这是因为通常不允许JavaScript在domain1上运行并从domain2加载URL。这是设计上的安全措施。

如果

- 您很乐意将您的客户端代码更改为AND

- 你可以让你的vamdemo2.e-isg.com服务器在添加“回调”查询字符串参数时改变响应

然后

- 有一个解决方案:JSONP

在此处阅读有关如何实现此目的的更多详细信息:

http://en.wikipedia.org/wiki/JSONP