-1

我尝试使用以下代码从我的 json url 在 javascript 中获取响应:

$(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 只给出响应。问题出在哪里??为什么另一个网址没有任何回应?

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

4

1 回答 1

1

我已将您的代码放在我的浏览器中,对我来说,这两个 URL 都不起作用。

即使对于 googleapis.com URL,当我在 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。这是设计使然,作为一种安全措施。

如果

-您很高兴在上面更改您的客户端代码并且

-当添加“回调”查询字符串参数时,您可以使您的 vamdemo2.e-isg.com 服务器更改响应

然后

- 有一个解决方案:JSONP

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

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

于 2012-10-18T09:38:31.187 回答