"क्रॉस मूल अनुरोध केवल HTTP के लिए समर्थित हैं।" स्थानीय फ़ाइल लोड करते समय त्रुटि


796

मैं एक 3D मॉडल को तीन.js में लोड करने का प्रयास कर रहा हूं JSONLoader, और यह कि 3D मॉडल पूरी वेबसाइट की तरह ही है।

मुझे "Cross origin requests are only supported for HTTP."त्रुटि मिल रही है , लेकिन मुझे नहीं पता कि यह क्या कारण है और न ही इसे कैसे ठीक किया जाए।


23
क्या आप स्थानीय स्तर पर ऐसा करने की कोशिश कर रहे हैं?
वोजटेक

10
आपको लोकलहोस्ट का उपयोग करने की आवश्यकता है, भले ही इसकी स्थानीय फ़ाइल
नील

22
लेकिन यह डोमेन को पार नहीं करता है!
करज्जा

21
यदि आप Chrome का उपयोग कर रहे हैं, तो उसे टर्मिनल से - theallow-file-access-from-files विकल्प से शुरू करने से आपको मदद मिल सकती है।
निकोइसिस

12
हाँ, यह वास्तव में क्रॉस-डोमेन नहीं है जब फ़ाइल वेबपेज के समान फ़ोल्डर में होती है, अब यह है ... मैंने पाया कि यदि आप क्रोम के बजाय फ़ायरफ़ॉक्स का उपयोग करते हैं, तो समस्या दूर हो जाती है।
स्फिंक्सएक्स

जवाबों:


790

मेरी क्रिस्टल बॉल कहती है कि आप file://या तो का उपयोग करके मॉडल लोड कर रहे हैं C:/, जो त्रुटि संदेश के लिए सही रहता है क्योंकि वे नहीं हैंhttp://

तो आप या तो अपने स्थानीय पीसी में एक वेबसर्वर स्थापित कर सकते हैं या मॉडल को कहीं और अपलोड कर सकते हैं jsonpऔर यूआरएल को बदल सकते हैंhttp://example.com/path/to/model

उत्पत्ति में परिभाषित किया गया है RFC-6454 के रूप में

   ...they have the same
   scheme, host, and port.  (See Section 4 for full details.)

इसलिए भले ही आपकी फ़ाइल एक ही होस्ट ( localhost) से उत्पन्न होती है , लेकिन जब तक स्कीम अलग है ( http/ file), उन्हें अलग मूल के रूप में माना जाता है।


7
हाँ, मैं इसका उपयोग करने की कोशिश कर रहा हूं file://, लेकिन मुझे समझ नहीं आ रहा है कि इसकी अनुमति क्यों है। खैर, मैं लैंप लगा रहा हूं मुझे लगता है ...
कोरोज़ा

150
कल्पना कीजिए कि अगर इसकी अनुमति हो और एक वेब पेज जिससे पृष्ठ का लेखक कुछ का उपयोग करता है load('file://C:/users/user/supersecret.doc')और फिर अपने सर्वर को अजाक्स आदि का उपयोग करके अपलोड कर सकता है
एंड्रियास वोंग

11
दुर्भाग्य से, नीति सभी मामलों के लिए बनाई गई है, न केवल आपके लिए :(, इसलिए इसके साथ सहन करना होगा
एंड्रियास वोंग

28
GitHub wiki में इस विषय के लिए एक पृष्ठ है: github.com/mrdoob/three.js/wiki/How-to-run-things-locally
Felipe Lima

29
आप क्रोम में --allow-file-access-from-files स्विच का भी उपयोग कर सकते हैं। यहाँ मेरे जवाब के अनुसार: stackoverflow.com/questions/8449716/…
prauchfuss

609

बस स्पष्ट होने के लिए - हाँ, त्रुटि कह रही है कि आप सीधे अपने ब्राउज़र को इंगित नहीं कर सकते file://some/path/some.html

अपने ब्राउज़र को स्थानीय फ़ाइलों को प्रस्तुत करने देने के लिए स्थानीय वेब सर्वर को जल्दी से बदलने के लिए यहां कुछ विकल्प दिए गए हैं

अजगर २

यदि आपके पास पायथन स्थापित है ...

  1. निर्देशिका को फ़ोल्डर में बदलें जहां आपकी फ़ाइल some.htmlया फ़ाइल (कमांडों) कमांड का उपयोग कर मौजूद हैcd /path/to/your/folder

  2. कमांड का उपयोग करके पायथन वेब सर्वर शुरू करें python -m SimpleHTTPServer

यह आपकी संपूर्ण निर्देशिका सूची को होस्ट करने के लिए एक वेब सर्वर शुरू करेगा http://localhost:8000

  1. आप python -m SimpleHTTPServer 9000लिंक देने वाले कस्टम पोर्ट का उपयोग कर सकते हैं :http://localhost:9000

यह दृष्टिकोण किसी भी पायथन इंस्टॉलेशन के लिए बनाया गया है।

अजगर ३

समान चरण करें, लेकिन इसके बजाय निम्न आदेश का उपयोग करें python3 -m http.server

Node.js

वैकल्पिक रूप से, यदि आप अधिक उत्तरदायी सेटअप की मांग करते हैं और पहले से ही नोडज का उपयोग करते हैं ...

  1. http-serverटाइप करके इंस्टॉल करेंnpm install -g http-server

  2. अपने कामकाजी निर्देशिका में बदलें, जहां आपका some.htmlजीवन है

  3. जारी करके अपना http सर्वर शुरू करें http-server -c-1

यह एक Node.js httpd को सपोर्ट करता है जो आपकी डायरेक्टरी में फाइलों को स्टैटिक फाइल्स से एक्सेस करने का काम करता है http://localhost:8080

माणिक

यदि आपकी पसंदीदा भाषा रूबी है ... रूबी देवताओं का कहना है कि यह काम करता है:

ruby -run -e httpd . -p 8080

पीएचपी

बेशक PHP के पास इसका समाधान भी है।

php -S localhost:8000

3
इसने मुझे धन्यवाद का एक टन बचा लिया। मेरे पायथन इंस्टॉलेशन में सिंपलएचटीपीएसर्वर मॉड्यूल है लेकिन नोड निर्देश एक आकर्षण की तरह काम करता है।
ल्यूक जूल

3
ल्यूक की टिप्पणी के जवाब में, python 2.7 में निर्देश निर्देशों के अनुसार काम करता है $ python -m SimpleHTTPServer, जो संदेश का उत्पादन करता है: Serving HTTP on 0.0.0.0 port 8000 ...यदि आप मॉड्यूल नाम को गलत करते हैं, उदाहरण के लिए, $ python -m SimpleHttpServerतो आपको त्रुटि संदेश No module named SimpleHttpServerमिलेगा यदि आपको pyonon3 है तो आपको एक समान त्रुटि संदेश मिलेगा स्थापित (v। अजगर 2.7)। आप कमांड का उपयोग करके अजगर के अपने संस्करण की जांच कर सकते हैं $ python --version:। आप इस तरह से सुनने के लिए पोर्ट को भी निर्दिष्ट कर सकते हैं:$ python -m SimpleHTTPServer 3333
7stud

1
अजगर सर्वर उस निर्देशिका से फ़ाइलों को प्रस्तुत करता है जहां आप सर्वर शुरू करते हैं। इसलिए यदि आप जिन फ़ाइलों की सेवा करना चाहते हैं, वे / Users / 7stud / angular_projects / 1app में स्थित हैं, तो उस निर्देशिका में सर्वर शुरू करें, जैसे $ cd ~/angular_projects/1app, फिर $ python -m SimpleHTTPServer। अपने ब्राउज़र में url डालें http://localhost:8000/index.html। आप उस निर्देशिका की उपनिर्देशिकाओं में फ़ाइलों का अनुरोध कर सकते हैं जहां आपने सर्वर शुरू किया था, जैसेhttp://localhost:8000/subdir/hello.html
7stud

2
मैंने सुना है कि पायथन सरल और शक्तिशाली है, "एक्स" भाषा की तरह, लेकिन यह हास्यास्पद है! XAMPP को स्थापित करने की आवश्यकता नहीं है, या स्थिर फ़ाइलों की सेवा के लिए नोड के साथ एक साधारण http सर्वर js सेटअप करना है - एक कमांड और बूम! बहुत बहुत धन्यवाद, बहुत समय और परेशानी बचाता है।
आरडी

2
बहुत बढ़िया! - विंडोज उपयोग पर पायथन के लिए: python -m http.server 8080 ... या जो भी पोर्ट आप चाहते हैं और जब आप इसे छोड़ना चाहते हैं तो बस ctrl-c।
क्रिस्टोफर

161

Chrome में आप इस ध्वज का उपयोग कर सकते हैं:

--allow-file-access-from-files

यहाँ और पढ़ें


11
@ Blairg23, ध्यान रखें कि इस समाधान को काम करने के लिए Chrome.exe के सभी उदाहरणों को पुनः आरंभ करने की आवश्यकता है
एलेक्स क्लॉस

3
कृपया, इसे क्रोम में उपयोग करने का तरीका बताएं।
ऋषभ अग्रहरी

@ प्रिया को हालांकि ऐसा नहीं करना चाहिए
सूरज जैन

मैं केवल स्थानीय डिबगिंग के लिए क्रोमियम का उपयोग करने का सुझाव दूंगा (इसे ध्वज के साथ शुरू करना --allow-file-access-from-files)। इसका अर्थ है सामान्य वेब ब्राउज़िंग के लिए क्रोम का उपयोग करना, और HTML फ़ाइल के लिए डिफ़ॉल्ट एप्लिकेशन के रूप में क्रोमियम का उपयोग करना।
एलन ज़िलियांग फेंग

ध्यान दें कि यह fetch()अभी भी वैसे भी इनकार करता है। आपको XMLHttpRequestकिसी तरह से उपयोग करना चाहिए
हैशब्रोर्न

63

आज तक भाग गया।

मैंने कुछ कोड लिखे जो इस तरह दिखे:

app.controller('ctrlr', function($scope, $http){
    $http.get('localhost:3000').success(function(data) {
        $scope.stuff = data;
    });
});

... लेकिन यह इस तरह देखा जाना चाहिए:

app.controller('ctrlr', function($scope, $http){
    $http.get('http://localhost:3000').success(function(data) {
        $scope.stuff = data;
    });
});

एकमात्र अंतर http://कोड के दूसरे स्निपेट में कमी था ।

बस एक ही मुद्दे के साथ दूसरों के मामले में वहाँ बाहर रखना चाहता था।


40

http://localhostइसके बजाय केवल url बदलें localhost। यदि आप स्थानीय से html फ़ाइल खोलते हैं, तो आपको उस HTML फ़ाइल की सेवा के लिए एक स्थानीय सर्वर बनाना चाहिए, जो कि सबसे सरल तरीका है Web Server for Chrome। वह समस्या को ठीक कर देगा।


5
Web Server for Chromeऐप लिंक के लिए +1 - यह क्रोम IMO के लिए अस्थायी httpd सेटअप के लिए अब तक का सबसे सरल और साफ समाधान है

इसने मुझे बचा लिया। सटीक समाधान
सूर्य

18

एंड्रॉइड ऐप में - उदाहरण के लिए, जावास्क्रिप्ट को संपत्ति के माध्यम से एक्सेस करने की अनुमति देने के लिए file:///android_asset/- उस setAllowFileAccessFromFileURLs(true)पर उपयोग करें WebSettingsजिसे आप कॉल करने से प्राप्त getSettings()करते हैं WebView


प्रतिभाशाली! हम बस JSON को वेरिएबल्स में इंजेक्ट करने के तरीकों को फिर से लिखने वाले थे .. लेकिन यह काम करता है! webView.getSettings () setAllowFileAccessFromFileURLs (सही)।
वैलेहेल

15

Url का उपयोग करना http://या https://बनाना

त्रुटि :localhost:8080

समाधान :http://localhost:8080


14

मेरे लिए सबसे तेज़ तरीका था: विंडोज़ के लिए उपयोगकर्ता आपकी फ़ाइल को फ़ायरफ़ॉक्स समस्या के हल पर चलाते हैं, या यदि आप क्रोम का उपयोग करना चाहते हैं तो मेरे लिए सबसे आसान तरीका है पायथन 3 स्थापित करना, फिर कमांड प्रॉम्प्ट रन कमांड से python -m http.server फिर http: // localhost: 8000 / पर जाएं फिर अपनी फ़ाइलों पर नेविगेट करें

python -m http.server

13

मैं इस मुद्दे को हल करने के लिए 3 अलग-अलग दृष्टिकोणों की सूची बनाने जा रहा हूँ :

  1. बहुत हल्के npmपैकेज का उपयोग करना : लाइव-सर्वर का उपयोग करके इंस्टॉल करें npm install -g live-server। फिर, उस डायरेक्टरी पर जाएं और टर्मिनल खोलें live-serverऔर एंटर टाइप करें, पेज पर सर्विस दी जाएगी localhost:8080। बोनस: यह डिफ़ॉल्ट रूप से गर्म लोडिंग का भी समर्थन करता है।
  2. Google द्वारा विकसित हल्के Google Chrome ऐप का उपयोग करना : फिर एप्लिकेशन इंस्टॉल करें, Chrome में ऐप्स टैब पर जाएं और ऐप खोलें। एप्लिकेशन में इसे सही फ़ोल्डर में इंगित करें। आपका पेज सर्व किया जाएगा!
  3. विंडोज़ में क्रोम शॉर्टकट को संशोधित करना : क्रोम ब्राउज़र का शॉर्टकट बनाएं। आइकन और खुले गुणों पर राइट-क्लिक करें। गुणों में, संपादित targetकरें "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="C:/ChromeDevSession"और सहेजें। फिर क्रोम का उपयोग करके पेज को ओपन करें ctrl+o। नोट: नियमित ब्राउज़िंग के लिए इस शॉर्टकट का उपयोग करें।

12

पायथन या नोड.जेएस के बिना विंडोज पर उन लोगों के लिए, अभी भी एक हल्का समाधान है: Mongoose

आप जो कुछ भी करते हैं वह निष्पादन योग्य को उस स्थान पर खींचता है जहां सर्वर की जड़ होनी चाहिए, और इसे चलाएं। टास्कबार में एक आइकन दिखाई देगा और यह डिफ़ॉल्ट ब्राउज़र में सर्वर पर नेविगेट करेगा।

इसके अलावा, Z-WAMP एक 100% पोर्टेबल WAMP है जो एक एकल फ़ोल्डर में चलता है, यह बहुत बढ़िया है। अगर आपको एक त्वरित PHP और MySQL सर्वर की आवश्यकता है तो यह एक विकल्प है।


यदि आप php इंस्टॉल करते हैं या आपने इंस्टॉल किया है, तो आप अपने फ़ोल्डर में एक सर्वर शुरू कर सकते हैं: php.net/manual/es/features.commandline.webserver.php
jechaviz

12

यदि आप मोज़िला फ़ायरफ़ॉक्स का उपयोग करते हैं, तो यह बिना किसी समस्या के अपेक्षित रूप से काम करेगा;

पुनश्च आश्चर्यजनक रूप से, IntenetExplorer_Edge बिल्कुल ठीक काम करता है !!!


1
अब और नहीं। फ़ायरफ़ॉक्स और यानी दोनों मेरे लिए रोकना अनुरोध हैं।
बाहुबली

यह भी असुरक्षित पृष्ठों तक पहुँचने के लिए एक अच्छी बात की तरह नहीं है: D
csomakk

6

वीएस कोड का उपयोग करने वाले के लिए आसान समाधान

मुझे यह त्रुटि कुछ समय से मिल रही है। ज्यादातर जवाब काम करता है। लेकिन मुझे एक अलग समाधान मिला। यदि आप node.jsयहाँ या किसी अन्य समाधान के साथ सौदा नहीं करना चाहते हैं और आप एक HTML फ़ाइल के साथ काम कर रहे हैं (किसी अन्य js फ़ाइल से कॉलिंग फ़ंक्शन या json api की) लाइव सर्वर एक्सटेंशन का उपयोग करने का प्रयास करें।

यह आपको एक लाइव सर्वर आसानी से खोलने की अनुमति देता है। और क्योंकि यह localhostसर्वर बनाता है, समस्या हल हो रही है। आप बस localhostएक HTML फ़ाइल खोलकर संपादक पर राइट-क्लिक करके शुरू कर सकते हैं Open with Live Server

यह मूल रूप से उपयोग http://localhost/index.htmlकरने के बजाय फ़ाइलों का उपयोग करके लोड करता है file://...

संपादित करें

.htmlफाइल होना जरूरी नहीं है । आप शॉर्टकट के साथ लाइव सर्वर शुरू कर सकते हैं।

(alt+L, alt+O)सर्वर को खोलने और सर्वर (alt+L, alt+C)को बंद करने के लिए मारो । [मैक पर, cmd+L, cmd+Oऔर cmd+L, cmd+C]

आशा है कि यह किसी की मदद करेगा :)


4

मुझे यह सटीक त्रुटि तब मिल रही थी जब ब्राउज़र पर एक HTML फ़ाइल लोड की जा रही थी जो स्थानीय निर्देशिका से एक json फ़ाइल का उपयोग कर रही थी। मेरे मामले में, मैं एक साधारण नोड सर्वर बनाकर इसे हल करने में सक्षम था जो स्थिर सामग्री को सर्वर के लिए अनुमति देता था। मैंने इस अन्य उत्तर पर इसके लिए कोड छोड़ दिया ।


4

मेरा सुझाव है कि आप इस तरह के एप्लिकेशन को लोकलहोस्ट पर चलाने के लिए एक मिनी-सर्वर का उपयोग करें (यदि आप कुछ इनबिल्ट सर्वर का उपयोग नहीं कर रहे हैं)।

यहाँ एक है जो सेटअप और चलाने के लिए बहुत सरल है:

https://www.npmjs.com/package/tiny-server

4

मुझे संदेह है कि यह पहले से ही कुछ उत्तरों में उल्लिखित है, लेकिन मैं इसे पूरी तरह से काम करने के उत्तर (खोजने और उपयोग करने में आसान) के लिए थोड़ा संशोधित करूंगा।

  1. : पर जाएं https://nodejs.org/en/download/ । नोडज स्थापित करें।

  2. कमांड प्रॉम्प्ट से कमांड चलाकर http-सर्वर स्थापित करें npm install -g http-server

  3. अपनी कार्यशील निर्देशिका में बदलें, जहाँ index.html/ yoursome.htmlनिवास करता है।

  4. कमांड चलाकर अपना http सर्वर शुरू करें http-server -c-1

अपने HTML फ़ाइलनाम के आधार पर http://localhost:8080 या के लिए वेब ब्राउज़र खोलें http://localhost:8080/yoursome.html


3

यह केवल यह कहता है कि एप्लिकेशन को वेब सर्वर पर चलाया जाना चाहिए। मुझे क्रोम के साथ भी यही समस्या थी, मैंने टॉमकैट शुरू किया और अपने आवेदन को वहां स्थानांतरित कर दिया, और यह काम कर गया।


1

एर। मुझे बस कुछ आधिकारिक शब्द मिले "क्रॉस-ऑरिजनल सिक्योरिटी प्रतिबंधों के कारण डोजो / टेक्स्ट प्लगइन का उपयोग करने वाले रिमोट एएमडी, जो कि डोज / टेक्स्ट प्लग इन का उपयोग करने का प्रयास है, विफल हो जाएगा। (एएमडी मॉड्यूल के निर्मित संस्करण अप्रभावित हैं क्योंकि डोजो / टेक्स्ट के द्वारा कॉल समाप्त हो गए हैं")। निर्माण प्रणाली।) " https://dojotoolkit.org/documentation/tutorials/1.10/cdn/


1

स्थानीय फ़ाइलों को लोड करने के लिए काम करने का एक तरीका उन्हें आपके प्रोजेक्ट फ़ोल्डर के बाहर के बजाय प्रोजेक्ट फ़ोल्डर में उपयोग करना है। अपनी परियोजना उदाहरण फ़ाइलों के तहत एक फ़ोल्डर बनाएँ जिस तरह से हम छवियों के लिए बनाते हैं और उस अनुभाग को प्रतिस्थापित करते हैं जहां परियोजना पथ के अलावा पूरा स्थानीय पथ का उपयोग करते हुए और परियोजना फ़ोल्डर के तहत फ़ाइल के सापेक्ष यूआरएल का उपयोग करें। इसने मेरे लिए काम किया


1

सभी y'all on MacOS... के लिए Chrome की अपनी प्रति में इन ग्लैमरस क्षमताओं को सक्षम करने के लिए एक साधारण LaunchAgent सेटअप करें ...

एक सहेजें plist, नाम दिया जो कुछ भी ( launch.chrome.dev.mode.plistउदाहरण के लिए) में ~/Library/LaunchAgentsकरने के लिए इसी तरह की सामग्री के साथ ...

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>launch.chrome.dev.mode</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Applications/Google Chrome.app/Contents/MacOS/Google Chrome</string>
        <string>-allow-file-access-from-files</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

इसे स्टार्टअप पर लॉन्च किया जाना चाहिए .. लेकिन आप इसे टर्मिनल कमांड के साथ किसी भी समय ऐसा करने के लिए मजबूर कर सकते हैं

launchctl load -w ~/Library/LaunchAgents/launch.chrome.dev.mode.plist

टाडा! 🙊 🙊 😎 🙊


1
  • जावा के लिए स्थानीय वेबसर्वर स्थापित करें जैसे कि टॉमकैट, php के लिए आप दीपक आदि का उपयोग कर सकते हैं
  • सार्वजनिक सुलभ ऐप सर्वर निर्देशिका में json फ़ाइल को छोड़ें
  • सामग्री सूचीबद्ध करें

  • ऐप सर्वर शुरू करें, और आपको लोकलहोस्ट से फाइल एक्सेस करने में सक्षम होना चाहिए


1

सर्वर के बिना स्थिर स्थानीय फ़ाइलों (जैसे: svg) को लोड करना संभव नहीं है। यदि आपके पास अपनी मशीन में एनपीएम / यार्न स्थापित है, तो आप " http-server " का उपयोग करके सरल http सर्वर सेटअप कर सकते हैं

npm install http-server -g
http-server [path] [options]

या उस प्रोजेक्ट फ़ोल्डर में टर्मिनल खोलें और "hs" टाइप करें। यह HTTP लाइव सर्वर को ऑटोमैटिकली स्टार्ट करेगा।


डुप्लिकेट उत्तर
स्कॉट स्टेंसलैंड

0

इसके लिए कई समस्याएँ, मेरी समस्या गायब है '/' उदाहरण: jquery-1.10.2.js: 8720 XMLHttpRequest http लोड नहीं कर सकता : // localhost: xxxProduct / getList_tagLabels / यह होना चाहिए: http: // localhost: उत्पाद / / getList_tagLabels /

मुझे उम्मीद है कि इस समस्या को पूरा करने के लिए यह मदद करेगा।


0

मैं निम्नलिखित त्रुटि के साथ एक एंकर टैग का उपयोग करते समय इस त्रुटि संदेश को फिर से बनाने में सक्षम रहा हूं:

<a href="javascript:">Example a tag</a>

मेरे मामले में 'पॉइंटर कर्सर' प्राप्त करने के लिए एक टैग का उपयोग किया जा रहा था और इस घटना को वास्तव में क्लिक इवेंट के लिए कुछ jQuery द्वारा नियंत्रित किया गया था। मैंने href हटा दिया और एक वर्ग जोड़ा जो लागू होता है:

cursor:pointer;


0

लिनक्स पायथन उपयोगकर्ताओं के लिए:

import webbrowser
browser = webbrowser.get('google-chrome --allow-file-access-from-files %s')
browser.open(url)

वहाँ कोई कारण नहीं है कि क्यों google-chrome --allow-file-access-from-files <url>काम नहीं करेगा और अधिक संक्षिप्त होगा?
अगुथ २३१

@ agupta231 वेबब्रोसर मॉड्यूल में ऐसे तर्क होते हैं जो आपको "ओपनिंग" के विभिन्न प्रकारों में सक्षम बनाते हैं। करंट टैब, नया टैब, नई विंडो आदि में खुला
डैनियल ब्रौन

0

अगर आप दौड़ने की जिद करते हैं .html फ़ाइल को स्थानीय रूप से और वेबसर्वर के साथ इसे परोसने , तो आप समस्याग्रस्त संसाधनों को इनलाइन उपलब्ध कराकर उन क्रॉस ऑरिजिनल अनुरोधों को पहले स्थान पर होने से रोक सकते हैं।

.jsफ़ाइलों के माध्यम से सेवा करने की कोशिश करते समय मुझे यह समस्या थी file://। मेरा समाधान <script src="...">टैग्स को बदलने के लिए मेरी बिल्ड स्क्रिप्ट को अपडेट करना था <script>...</script>। यहाँ एक हैgulp ऐसा करने के लिए दृष्टिकोण है:

1. npm install --save-devसंकुल के लिए चलाएँ gulp, gulp-inlineऔरdel

2. gulpfile.jsरूट डायरेक्टरी बनाने के बाद , निम्न कोड जोड़ें (जो भी सूट हो उसके लिए फ़ाइल पथ बदलें)

let gulp = require('gulp');
let inline = require('gulp-inline');
let del = require('del');

gulp.task('inline', function (done) {
    gulp.src('dist/index.html')
    .pipe(inline({
        base: 'dist/',
        disabledTypes: 'css, svg, img'
    }))
    .pipe(gulp.dest('dist/').on('finish', function(){
        done()
    }));
});

gulp.task('clean', function (done) {
    del(['dist/*.js'])
    done()
});

gulp.task('bundle-for-local', gulp.series('inline', 'clean'))
  1. इसे चलाने के लिए gulp bundle-for-localया तो अपनी बिल्ड स्क्रिप्ट को अपडेट करें या अपडेट करें।

आप मेरे मामले की विस्तृत समस्या और समाधान यहां देख सकते हैं ।


-1

कॉर्डोवा इसे हासिल करते हैं। मैं अब भी यह पता नहीं लगा सकता कि कॉर्डोवा ने कैसे किया। यह shouldInterceptRequest के माध्यम से भी नहीं जाता है।

बाद में मुझे पता चला कि स्थानीय से किसी भी फ़ाइल को लोड करने की कुंजी है: myWebView.getSettings ()। SetAllowUniversalAccessFromFileURLs (सच);

और जब आप किसी http संसाधन तक पहुँच प्राप्त करना चाहते हैं, तो वेबवॉच ऑप्‍शन विधि से जाँच करेगा, जिसे आप प्रतिक्रिया देने के लिए WebViewClient.shouldInterceptRequest के माध्‍यम से एक्‍सेस दे सकते हैं, और निम्‍न GET / POST विधि के लिए, आप केवल null वापस कर सकते हैं।


-1

क्रोम के पहले उदाहरण को बंद करें।

इसके बाद इसे फॉलो करें।

मैंने मैक पर इस कमांड का इस्तेमाल किया।

"/ एप्लीकेशन / Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files

विंडोज के लिए:

Chrome - "-allow-file-access-from-files" मोड पर HTML का उपयोग कैसे करें?


-1

इसका अनुभव तब हुआ जब मैंने ऑफ़लाइन दृश्य के लिए एक पृष्ठ डाउनलोड किया।

मुझे बस सभी और टैग से विशेषताओं integrity="*****"और crossorigin="anonymous"विशेषताओं को निकालना था<link><script>

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.