jQuery $.getJSON not working



我试图从一台服务器获取URL,并使用该URL获取另一台服务器的内容。

$.ajax({url : 'http://localhost:8080/geturl.jsp?A=1&B=2,C=3',
    success : function (data)
        {
            alert(data);
            $.getJSON(data, function (mydata)
            {
                alert(mydata);
            });
        },
    error : function (data, status, xhr)
            {
            }
    });

我知道我们不能通过ajax调用进行跨域请求,这就是我使用getJSON的原因,我在中遇到了以下问题

  1. 当我简单地将数据传递到getJSON的url部分时(如代码所示),警报框会显示正确的url,但没有执行get请求(get请求是从FireBug监控的)
  2. 当硬编码数据时"http://www.google.com"然后执行get请求,但没有响应,尽管响应标头来了,响应代码是200(但它在Firebug中被标记为RED)(不知道为什么:()
  3. 当我尝试在localhost域中获取网页主机时,尽管响应不是JSON,但它被正确地获取了

我有以下疑虑

  1. 如果getJSON函数只访问JSON对象作为响应,那么为什么在执行上述3时没有出现错误
  2. 执行所需功能的正确代码是什么
  3. 对每种情况的建议

提前感谢您的回答:)

getJSON函数只能跨域使用以获取JSONP
它不会神奇地规避任何安全限制。

http://api.jquery.com/jQuery.ajax/

这应该是jsonp:的一个工作示例

    var request = jQuery.ajax(
    {
        url: "http://Your url",
        success: function (data) { console.log('success!'); console.log(data); },
        error: function (data) { console.log('error!'); console.log(data); },
        dataType: "jsonp",
        type: "GET",
        data: { key: 'value' }
    });

相关内容

  • 没有找到相关文章

最新更新