2011-08-11 10 views
5

मुझे jQuery का उपयोग करके random.org से यादृच्छिक संख्या का अनुरोध करने में समस्या आ रही है। जब मैं एक स्थिर पृष्ठ और निम्न जावास्क्रिप्ट का उपयोग कर रहा हूं, तो मुझे यादृच्छिक संख्या प्राप्त करने में कोई समस्या नहीं है। हालांकि, मैं हेरोकू पर एक सिनात्रा ऐप होस्ट कर रहा हूं (साथ ही, जब मेरा ऐप स्थानीय रूप से थिन का उपयोग करके उत्पादन में चला रहा है) मुझे "(वेबसाइट) एक्सेस-कंट्रोल-ऑब्जेक्ट-ऑरिजन द्वारा अनुमति नहीं है।"jquery और random.org "एक्सेस-कंट्रोल-अनुमति-उत्पत्ति द्वारा अनुमत नहीं है"

function raffler(){ 

var rowCount = $('#winnerTable tr').length; 

$('#winnerButton').click(function() { 
    $.get("http://www.random.org/integers/?", {num: "1", min: "1", max: rowCount, col: "1", base: "10", format: "plain", rnd: "new"}, function(randNum) { 
     var myNumber = randNum; 
     $("#entry-" + randNum).addClass('winner'); 
    }); 
}); 

}; 

विचार?

+0

अजाक्स-अनुरोध समान मूल नीति द्वारा सीमित हैं। जब तक आपका पृष्ठ डोमेन 'www.random.org' पर होस्ट नहीं किया जाता है, तो आप उस अजाक्स-अनुरोध को सक्षम नहीं कर पाएंगे ... –

उत्तर

1

ईमानदारी से मुझे नहीं लगता कि आप इसे किसी भी तरह से कैसे कर सकते हैं। क्योंकि आप इसे करने में सक्षम नहीं होना चाहिए। एक्सेस-कंट्रोल-अनुमति-उत्पत्ति एक एक्सएसएस सुरक्षा है जो क्रॉस डोमेन अनुरोधों को अवरुद्ध करती है और अधिकांश क्लाइंट साइड स्क्रिप्टिंग इंजनों (जैसे फ्लैश) का हिस्सा है। यादृच्छिक संख्या पीढ़ी के लिए निम्न का उपयोग करें:

Math.random() 
+0

मुझे यकीन नहीं है; मैं यह नहीं समझ सकता कि यह काम करता है जब यह काम करता है, और क्यों नहीं। मैं यादृच्छिक संख्या पीढ़ी के रूप में संभव (random.org) के रूप में उपयोग करना चाहता था, लेकिन मुझे बस Math.random() के लिए बसना होगा। =] आपकी मदद के लिए धन्यवाद। – YuKagi

+0

लेकिन, यदि आप अपने डेस्कटॉप पर एक .html फ़ाइल सेट करते हैं, और ऊपर पोस्ट किए गए कोड के साथ .js फ़ाइल से लिंक करते हैं, तो यह काम करेगा। ;) – YuKagi

+0

बोल्डविन के जवाब देखें, उन्होंने समझाया कि यह स्थानीय रूप से क्यों काम करता है – SinistraD

0

इस पृष्ठ से परिणाम प्राप्त करने के लिए jQuery YQL प्लगइन का उपयोग करें।

यह आवश्यक पृष्ठ की सामग्री प्राप्त करने के लिए याहू सेवा का उपयोग करके मूल जांच को छोड़ देता है।

http://plugins.jquery.com/project/jquery-yql-plugin

लेकिन यह बहुत जटिल तरीका है। आप Math.random() का उपयोग क्यों नहीं करते?

3

ठीक है, एक त्वरित जांच पर, random.org वापस नहीं करता है किसी भी CORS हेडर। यह बताता है, आपको जावास्क्रिप्ट के माध्यम से अपनी वेबसाइट से अनुरोध करने की अनुमति क्यों नहीं है।

क्या आपने अपनी स्थिर फ़ाइल लोड की है, जहां यह काम करता है, स्थानीय रूप से, यानी file:/// प्रोटोकॉल के माध्यम से? कर्तव्य पर अन्य सुरक्षा माप हैं, और ब्राउज़र आमतौर पर क्रॉस-डोमेन AJAX को अनुमति देते हैं।

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

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