2016-09-04 4 views
6

मैं अपनी साइट के लिए कुछ गणित करने के लिए wolfram से पूछताछ करने की कोशिश कर रहा हूं और फिर परिणाम प्रदर्शित करता हूं। मुझे कोरस में परेशानी हो रही है। मेरे कोड:स्टैटिक गिथब पेज पर WolframAlpha अनुरोध कैसे करें?

var xmlHttp = new XMLHttpRequest(); 
xmlHttp.onreadystatechange = function() { 
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200) 
    callback(xmlHttp.responseText); 
} 
xmlHttp.open("GET", "http://api.wolframalpha.com/v2/query?input="+theUrl+"&appid=", true); // true for asynchronous 
xmlHttp.send(null); 

मेरे त्रुटि:

"क्रॉस-उत्पत्ति अनुरोध अवरोधित: वही मूल नीति http://api.wolframalpha.com/v2/query?input=sqrt(100)&appid= पर दूरस्थ संसाधन पढ़ने की अनुमति नहीं देता (कारण:। CORS हेडर 'पहुंच-नियंत्रण-अनुमति दें-उत्पत्ति 'लापता)। "

मैं समझता हूँ कि एक गतिशील साइट पर मैं सिर्फ

Header set Access-Control-Allow-Origin "*" 

.htaccess के लिए, लेकिन मैं कैसे एक स्थिर साइट पर यह करने के लिए यकीन नहीं जोड़ सकता है। मैंने पढ़ा है कि अनुमति-Access_origin पहले से ही github पृष्ठों में मौजूद होना चाहिए।

2 यहाँ जवाब: Cross-Origin Resource Sharing on GitHub Pages

2 यहाँ जवाब: Is there a way to enable CORS on Github pages?

+1

एक्सेस-कंट्रोल-अनुमति-उत्पत्ति शीर्षलेख सर्वर के पक्ष में सेट किया जाना चाहिए, यानी इस मामले में wolframalpha। जब तक आप wolframalpha का प्रशासन नहीं करते हैं, तब तक आप इसे करने के लिए कोई रास्ता नहीं। –

+0

यह http://stackoverflow.com/questions/16268930/wolfram-api-javascript-cross-origin-sharing-issue का डुप्लिकेट है। कृपया बक्षीस को हटा दें और प्रश्न बंद करें। –

+0

@AndyRay उस प्रश्न का कोई जवाब नहीं है। मेरा विशेष रूप से अलग है क्योंकि यह विकल्प –

उत्तर

2

यदि यह एक छोटी परियोजना आप मार्ग सका crossorigin.me के माध्यम से अपने get अनुरोध है। अन्यथा आपको एक सर्वर स्वयं को चलाने की आवश्यकता होगी कि प्रॉक्सी wolfram अल्फा को अनुरोध करता है और एक्सेस-कंट्रोल-ऑब्जेक्ट हेडर को ठीक तरह से सेट करता है। आप इन प्रॉक्सी सर्वरों में से एक को अब भी .sh या heroku मुफ्त या सस्ते में तैनात कर सकते हैं। मेरे पास एक समान सरल अनुप्रयोग github-issue-filer है जो हेडर को सही तरीके से सेट करता है और जीआईटीयूबी के एपीआई को POSTs को दोहराता है।

+0

के लिए पूछता है, मुझे लगता है कि अगर कोई बेहतर समाधान नहीं दिया जाता है तो मैं crossorigin.me का उपयोग करूंगा। यह एक "छोटी परियोजना" क्यों होनी चाहिए? धन्यवाद! –

+1

crossorigin.me का मालिक सौजन्य के रूप में साइट को मुफ्त में चला रहा है, इसलिए यदि आप बहुत से ट्रैफ़िक चला रहे हैं तो यह उनकी उदारता का दुरुपयोग नहीं करेगा :-) –

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