2011-03-29 13 views
9

मैं विंडोज़ वैंप सर्वर पर चल रहे "http://localhost/" की सामग्री प्राप्त करने के लिए AJAX अनुरोध करने का प्रयास कर रहा हूं।स्थानीय फाइल सिस्टम से jQuery अजाक्स अनुरोध (विंडोज फ़ाइल: ///)

स्क्रिप्ट कुछ इस तरह से चल रहा है:

file:///C:/my/path/index.html

मैं बस कोशिश करते हैं और स्थानीय होस्ट की सामग्री को प्राप्त करने के लिए एक मानक $ .ajax अनुरोध उपयोग कर रहा हूँ:

$.ajax({ 
      type: 'GET', 
      url: 'http://localhost/', 
      success: function(data) { 
      alert('success'); 
      }, error: function (data) { 
      alert('failed'); 
      } 
    }); 

मैं हालांकि यह सफल नहीं हो सकता है ... स्थानीय फाइल सिस्टम या कुछ के साथ कुछ समस्या होने लगती है। मुझे भी यकीन नहीं है।

+0

यूआरएल के लिए बस '/' आज़माएं, फिर '/ index.html' –

+0

नहीं, कोशिश करें – Emmanuel

+0

क्या आप सीधे यूआरएल तक पहुंच सकते हैं? क्या आपको जेएस कंसोल में कोई त्रुटि मिलती है? –

उत्तर

15

समस्या हल हो गई!

मैं बस के लिए http://localhost/

header('Access-Control-Allow-Origin: *');

आपकी मदद के लिए धन्यवाद किसी भी तरह लोग मेरे index.php फ़ाइल को यह शीर्ष लेख था!

+0

हाय इमानुअल, मैं वही स्थिति में हूं जैसा आप हैं। लेकिन मेरे पास कोई सर्वर कोड नहीं है, मैंने डेटाबेस प्रॉक्सी सर्वर dbmojo [link] (code.google.com/p/dbmojo/) का उपयोग किया है। मेरी स्क्रिप्ट स्थानीय फ़ाइल में स्थित हैं: // निर्देशिका। अब मैं हेडर कैसे रख सकता हूं ('एक्सेस-कंट्रोल-ऑब्जेक्ट-उत्पत्ति: *'); ? या कोई अन्य समाधान है? – iEamin

+0

@iEamin मुझे आपकी स्थिति का बिल्कुल यकीन नहीं है ... शायद आपके अपाचे (.htaccess) या अन्य सर्वर कॉन्फ़िगरेशन फ़ाइलों के माध्यम से "एक्सेस-कंट्रोल-ऑब्जेक्ट-ओरिजिनल" हेडर जोड़ा जा सकता है? मुझे यकीन नहीं है। मुझे इस तरह क्रॉस-सर्वर/प्रोटोकॉल अनुरोध करने का एक और तरीका पता नहीं है। – Emmanuel

3

यह शायद काम नहीं करेगा, क्योंकि ब्राउज़र को लगता है कि यह एक क्रॉस-डोमेन अनुरोध है। आपने फ़ाइल को // // URL के माध्यम से एक्सेस किया है, लेकिन http://localhost से डेटा पुनर्प्राप्त करने का प्रयास कर रहे हैं। http://localhost से अपनी मूल फ़ाइल तक पहुंचने का प्रयास करें, और यह शायद काम करना शुरू कर देगा।

+0

हां, इसे http: // localhost से एक्सेस करना ठीक है। लेकिन मूल रूप से मैं फ़ाइल के साथ क्या करने की कोशिश कर रहा हूं: /// स्क्रिप्ट यह पता लगाने के लिए है कि क्या एम्पैक्स अनुरोध भेजकर और परिणामों की जांच करके wampserver चल रहा है या नहीं। – Emmanuel

+0

@Emmanuel - उपरोक्त आपका कोड आपको यूआरएल का उपयोग करने से दिखाता है, लेकिन यहां आप कहते हैं कि आप फ़ाइल पथ का उपयोग कर रहे हैं। जो यह है? –

+1

@adam - AJAX अनुरोध फ़ाइल से चल रहा है: /// आदि ... और url 'http: //: localhost/'की सामग्री प्राप्त करने का प्रयास कर रहा है। किसी भी तरह, मेरे उत्तर के लिए नीचे देखें ... – Emmanuel

11

आप कहते हैं कि स्क्रिप्ट file:/// URL से चल रही है। file यूआरएल से AJAX अनुरोधों को न करना सबसे अच्छा है, क्योंकि उनका असंगत व्यवहार किया जाता है। क्रोम, उदाहरण के लिए, पूरी तरह से उन्हें अस्वीकार करता है।

हालांकि, आपकी बड़ी समस्या यहां एक ही मूल नीति है: आप केवल वेब पेज के समान होस्ट को AJAX अनुरोध कर सकते हैं। file:/// और http://localhost समान मेजबान (भले ही वे एक ही मशीन हों)।

http://localhost से सब कुछ चलाने के लिए सबसे अच्छा है।

+2

असुरक्षित रूप से मुझे लगता है कि आप सही हैं :(।सुरक्षा के लिए शायद अच्छा है, लेकिन मेरी परिस्थितियों में बुरा है। – Emmanuel

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