【问题标题】:Cross domain JQuery load() does not work for specific site跨域 JQuery load() 不适用于特定站点
【发布时间】:2011-10-31 01:39:35
【问题描述】:

我正在使用 Jquery 加载页面的 html,然后选择其中的特定部分。但由于某种原因,这在我想将其用于(#1)的网站上不起作用。使用 firebug 我可以看到它没有收到包含页面 html 的答案。谁能解释为什么它不起作用?

<head>
<script class="jsbin" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery.xdomainajax.js"></script>

<script type="text/javascript">
$(document).ready(
    function(){
        $('#1').load("http://ted.europa.eu/udl?uri=TED:NOTICE:310574-2011:TEXT:EN:HTML p");
        $('#2').load("http://www.google.com a");

    }
);
</script>
</head>

<body>
  <p id="1"></p>
  <p id="2"></p>
</body>

请求的答案显示没有结果:

jsonp1319995924645({"query":{"count":"0","created":"2011-10-30T17:32:10Z","lang":"en-US"},"results":[]});

【问题讨论】:

    标签: jquery load cross-domain


    【解决方案1】:

    由于浏览器安全限制,大多数“Ajax”请求都受same origin policy的约束;请求无法从不同的域、子域或协议中成功检索数据。

    使用任意jQuery AJAX函数并设置dataType: "jsonp"

    【讨论】:

    • 我已经读过是的,但是这个 jquery.xdomainajax.js 可以做到这一点。它适用于 www.google.com(或我尝试过的任何随机网站),但不适用于 ted.europa.eu,我不明白为什么不这样做。
    • 使用任意 jQuery AJAX 函数并设置 dataType: "jsonp"
    猜你喜欢
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 2014-12-30
    相关资源
    最近更新 更多