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

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

   Commons app     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!'); }); });    

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

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。

更新:此方法已从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

PS感谢一个很好的问题! 我相信它在将来对我也有用。

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

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

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

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