$ .ajax():不允许原点为null

时间:2011-10-13 10:08:56

标签: jquery ajax

我刚开始$.ajax()。这是我的代码:

<html>
<head>
    <title>Commons app</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
</head>
<body>
<script type='text/javascript'>
    if($) console.log('jQuery loaded!\n');

    $(function () {
        $.ajax({
            url: 'http://en.wikipedia.org/w/api.php?action=query&list=allimages&ailimit=5&aifrom=Albert&aiprop=dimensions|mime&format=jsonfm&callback=?'
        })
        .done(function () { console.log('Yay!'); })
        .fail(function () { console.log('Error!'); })
        .always(function () { console.log('Complete!'); });
});
</script>
</body>
</html>

出于某种原因,我收到以下错误消息:

  

XMLHttpRequest无法加载   http://commons.wikimedia.org/w/api.php?action=query&generator=allimages&gailimit=4&gaifrom=T&prop=imageinfo&iiprop=url&callback=?   Access-Control-Allow-Origin不允许使用null。

2 个答案:

答案 0 :(得分:1)

更新:此方法已弃用于jQuery 1.9。不再起作用了。

旧回答:

试试这个(更新):

$.support.cors = true;

$(function () {
     $.ajax("http://commons.wikimedia.org/w/api.php?action=query&generator=allimages&gailimit=4&gaifrom=T&prop=imageinfo&iiprop=url&callback=?")
     .complete(function () { alert('complete'); })
     .error(function () { alert('error'); })
     .success(function (data) { alert(data); });
});

有关jQuery.support.cors设置的更多信息,请访问:jQuery.support

P.S。谢谢你的问题!我相信它在将来也会对我有用。

答案 1 :(得分:-3)

您需要了解AJAX请求的跨域限制,这将阻止您出于安全原因在后台加载任意网站。有关详细信息,请参阅here

旧答案
使用$(foo)时,您需要使用foo指定要修改的元素。您可能正在寻找的是这样的:

$(document).ready(function(){
   // do something 
}

一旦文档完成设置其DOM结构,这将执行函数。