2011-10-13 12 views
5

मैं बस $.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= लोड नहीं कर सकता यह मेरा कोड है?। एक्सेस-कंट्रोल-ऑब्जेक्ट-ओरिजिन द्वारा मूल नल की अनुमति नहीं है।

उत्तर

1

अद्यतन: यह विधि jQuery 1.9 से बहिष्कृत है। अब और काम नहीं करता है।

पुराना जवाब:

इस (अद्यतन) का प्रयास करें:

jQuery.support.cors के बारे में
$.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

पी.एस. एक अच्छा सवाल के लिए धन्यवाद! मेरा मानना ​​है कि यह भविष्य में भी मेरे लिए उपयोगी होगा।

+1

वही समस्या ... – Randomblue

+0

मैंने उत्तर –

+0

अपडेट किया है मुझे लगता है कि यह अब और काम नहीं कर रहा है, मैक के लिए क्रोम पर परीक्षण किया गया है, संस्करण 30.0.1599.101। XMLHttpRequest लोड नहीं हो सकता http://commons.wikimedia.org/w/api.php?action=query&generator=allimages&gailimit=4&gaifrom=T&prop=imageinfo&iiprop=url&callback= ?. एक्सेस-कंट्रोल-ऑब्जेक्ट-ओरिजिन द्वारा मूल नल की अनुमति नहीं है। –

-3

आपको AJAX अनुरोधों के लिए क्रॉस-डोमेन-प्रतिबंधों से अवगत होना चाहिए, जो आपको सुरक्षा कारणों से पृष्ठभूमि में मनमानी वेबसाइटों को लोड करने से रोक देगा। अधिक जानकारी के लिए here देखें।

ओल्ड उत्तर:
जब आप का उपयोग $(foo) आप foo कि आप किन तत्वों को संशोधित करने के मतलब के साथ निर्दिष्ट करने के लिए की जरूरत है। एक बार दस्तावेज़ अपने DOM संरचना को सेट करना समाप्त

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

यह कार्यों को निष्पादित करेंगे: क्या आप शायद के लिए देख रहे हैं कुछ इस तरह है।

+1

मुझे समझ में नहीं आता कि आप क्या कह रहे हैं। '$()' '$ (दस्तावेज़) के लिए शॉर्टकट है .ready()'। वास्तव में – Randomblue

+0

। मुझे एहसास नहीं हुआ। :) पहले कभी नहीं देखा। मैंने अपने जवाब में दूसरा हिस्सा जोड़ा। शायद यह मदद करता है। –

+0

अपने नए उत्तर के बारे में: मुझे नहीं लगता कि यह एक क्रॉस-डोमेन-प्रतिबंध है। एकमात्र अन्य चीज जो मैं कर रहा हूं वह Google की सीडीएन से jQuery लोड कर रहा है। – Randomblue

संबंधित मुद्दे