2014-11-03 14 views
8

नीचे उल्लिखित कोड 1 के साथ कोणीय जेएस में मूल रूटिंग पर काम किया और "XMLHttpRequest लोड नहीं हो सकता क्रॉस मूल अनुरोध केवल प्रोटोकॉल योजनाओं के लिए समर्थित हैं: http, डेटा, क्रोम-एक्सटेंशन, https, क्रोम-एक्सटेंशन -resource "त्रुटि और स्थापित किया गया है कि हमें स्थानीय वेब सर्वर का उपयोग उसी और डाउनलोड किए गए एमएएमपी को हल करने के लिए करना चाहिए और एचटीएमओक्स फ़ोल्डर में अपना एचटीएमएल [login.html] रखा है सर्वर को शुरू किया और टेम्पलेट यूआरएल को [localhostURL/AngularJs/login.html 'के साथ बदल दिया] के रूप में Code2 और त्रुटि की हो रही त्रुटि में उल्लेख किया: [$ SCE: insecurl] सटीक त्रुटि नीचे दिए गए हैं, मुझे गूगल क्रोम में एक ही ठीक करने के लिए किसी भी समाधान के साथ गाइड ...कोणीय जेएस रूटिंग Google क्रोम अंक

संहिता 1

index.html

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Test</title> 
    </head> 
    <body ng-app="plunker"> 
    <div ng-view=""></div>  
    <script src="angular.min.js"></script> 
    <script src="angular-route.js"></script> 
    <script src="app.js"></script> 
    </body> 
</html> 

app.js

var app = angular.module('plunker', ['ngRoute']); 
    app.config(function ($routeProvider) { 
    $routeProvider.when('/login',{ 
     controller: '', 
     templateUrl: 'login.html' 
    }).otherwise({ 
     redirectTo: '/login' 
    }); 
}); 

login.html

Hello from login! 

Code2

सभी दूसरी बात यह केवल app.js में परिवर्तन

var app = angular.module('plunker', ['ngRoute']); 
    app.config(function ($routeProvider) { 
    $routeProvider.when('/login',{ 
     controller: '', 
     templateUrl: 'http://localhost:8888/AngularJs/login.html' 
    }).otherwise({ 
     redirectTo: '/login' 
    }); 
}); 

त्रुटि Code1 के साथ एक ही प्रकार हैं: - XMLHttpRequest cannot load file://localhost/Users/karthicklove/Documents/Aptana%20Studio%203%20Workspace/Object_Javascript/Angular_Js/Routing/login.html. Cross origin requests are only supported for protocol schemes: http, data, chrome-extension, https, chrome-extension-resource.

त्रुटि Code2: - [$ SCE: insecurl] http://errors.angularjs.org/1.2.26/ $ sce/insecurl? p0 = http% 3A% 2F% 2Flocalhost% 3A8888% 2FAngularJs% 2Flogin.html त्रुटि (मूल)

पर
+0

अपने दूसरे कोड में, आपको टेम्पलेट यूआरएल के लिए पूरा यूआरएल प्रदान करने की आवश्यकता नहीं है, बस HTML फ़ाइल नाम प्रदान करें। –

उत्तर

0

समस्या यह है कि आप शायद एक अलग बंदरगाह के माध्यम से आपको पृष्ठ देख रहे हैं (पोर्ट 80 डिफ़ॉल्ट http पोर्ट है) फिर भी आप पोर्ट 8888 तक पहुंच रहे हैं, इसलिए यह आपको क्रॉस मूल अनुरोध के रूप में देखेगा और इसे अवरुद्ध कर देगा कि यह संभावित रूप से एक है एक्सएसएस हमला या इसी तरह के।

यदि आप एक ही बंदरगाह पर पहले से ही कर रहे हैं, एक आवेदन यानी के रूप में इस बनाने जब मैं सर्वर निर्भर करने के लिए इस HTML + कोणीय js पेज बनाया और द्वारा करने के लिए

templateUrl: '/AngularJs/login.html' 
+0

आपकी प्रतिक्रिया के लिए धन्यवाद, पोर्ट को 80 में बदलने और टेम्पलेट Url को "templateUrl: '/AngularJs/login.html'" और http: //localhost/login.html पर संशोधित करने के साथ प्रयास किया गया लेकिन एक ही समस्या ... –

+0

यह होना चाहिए एक ही बंदरगाह जिसे आप कनेक्ट कर रहे हैं, न केवल पोर्ट 80 – DrogoNevets

0

मुद्दा यहाँ उल्लेख हल हो गई है टेम्पलेट यूआरएल को बदलने सर्वर पर चलाएं समस्या हल हो गई है यह Google क्रोम ब्राउज़र में ठीक काम करता है ...

+2

कृपया इसे अपनी मूल पोस्ट पर टिप्पणी दें। धन्यवाद! :) –

7

मुझे भी यही त्रुटि मिली। मुझे इसके लिए एक समाधान मिला है, हम इसे आपके फाइल सिस्टम में रखकर AngularJS में रूटिंग का उपयोग नहीं कर सकते हैं। (i.e) फ़ाइल: /// सी: /Users/path/to/file.html? आर = 4383065 'यदि आप इस यूआरएल के साथ भागते हैं तो आपको त्रुटि मिल जाएगी। मार्ग प्रदाता http प्रोटोकॉल का उपयोग करेगा। इसलिए आपको अपना कोड लोकहोस्ट के अंदर रखना होगा और फिर ब्राउज़र लोकहोस्ट/फ़ोल्डनाम/index.html से चलाया जाएगा। फ़ोल्डर से यह भागो मत सीधे

और यदि आपके पास संदेह के बाद यहां भी इस

 templateUrl: '/AngularJs/login.html' 

की तरह अपने टेम्पलेट URL बदलें।

+0

क्या आप कृपया मुझे सलाह दे सकते हैं कि स्थानीय होस्ट –

+0

@ कार्टथीक्स कैसे बनाएं अपनी परियोजना में बस अपनी मशीन में टॉमकैट जैसे कुछ सर्वर में प्रकाशित करें। ताकि आप इसे http: // localhost: portname डोमेन का उपयोग करके एक्सेस कर सकें। –

2

यदि आप सीधे क्रोम से पृष्ठ चला रहे हैं (आप केवल एक HTML फ़ाइल पर डबल क्लिक करते हैं) और आपका जावास्क्रिप्ट कुछ डेटा का अनुरोध करने का प्रयास कर रहा है तो आप इस त्रुटि को दबाएंगे।

कारण: $ रूटप्रोवाइडर डेटा अनुरोध करने के लिए HTTP सेवा का उपयोग करता है और यह अनुरोध तब तक नहीं भेजा जा सकता जब तक कि आप टॉमकैट जैसे किसी भी सर्वर का उपयोग नहीं कर रहे हों।

समाधान:

  1. अपने मशीन में बिलाव की तरह किसी भी सर्वर में अपने अनुप्रयोग को परिनियोजित और सर्वर के माध्यम से अपने पृष्ठ खोलें।

  2. यदि आपको लगता है कि आप क्लाइंट-साइड कोडिंग के साथ बस खेल रहे हैं तो फ़ायरफ़ॉक्स/सफारी जैसे अन्य ब्राउज़रों में बेहतर फ़ाइल खोलें।

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