2014-08-28 11 views
7

पर परिवर्तनीय पर आधारित कोणीय सेट फॉर्म कार्रवाई मैं एक खोज फ़ॉर्म सेट अप करने का प्रयास कर रहा हूं जहां मैं फॉर्म एक्शन विशेषता इंजेक्ट कर सकता हूं। स्ट्रिंग में:गुंजाइश

मेरी रूप में मैं

<form action="{{action}}"> 

तब मेरे नियंत्रक में मैं

$scope.action = "http://www.somesite.com" 

जो मुझे एक लगाना त्रुटि देता है क्योंकि यह अविश्वसनीय है है है "http"। मैं इसके आसपास कैसे पहुंचू। मुझे पता है कि मैं डोम में एचटीएमएल डालने के लिए एनजी-बाइंड-एचटीएमएल का उपयोग कर सकता हूं लेकिन मुझे नहीं पता कि मैं इसे केवल एक विशेषता के साथ काम करने के लिए प्राप्त कर सकता हूं।

क्या किसी और को यह समस्या है। मैं वास्तव में इसके चारों ओर एक रास्ता के बारे में सोच नहीं सकता।

धन्यवाद

उत्तर

4

आप Angular.js 1.2 उपयोग कर रहे हैं या इसके बाद, आप Strict Contextual Escaping Service, $sce की पहुंच है।

तरह से लेखन कोड में

SCE सहायता कि (क) डिफ़ॉल्ट और (ख) द्वारा सुरक्षित है इस तरह के XSS, क्लिकजैकिंग, आदि बहुत आसान के रूप में सुरक्षा कमजोरियों के लिए लेखा परीक्षा में आता है।

$ SCE भीतर

, आप इसे मूल मूल्य है प्राप्त करने के लिए $sce.trustAsUrl(value) करने के लिए एक चर पारित कर सकते हैं। तो तुम उपयोग करने के लिए सक्षम होना चाहिए:

$scope.action = $sce.trustAsUrl("http://www.somesite.com");

+0

उत्तर के लिए धन्यवाद। यह मेरे ऐप में इसे ठीक नहीं करता है, लेकिन मैंने अभी उसी अवधारणा का परीक्षण किया है http://jsfiddle.net/7v2mz24v/ और किसी कारण से मुझे इनमें से कोई भी करने की ज़रूरत नहीं है और यह ठीक काम करता है। मैं नहीं देख सकता कि यह मेरे अन्य ऐप में क्यों एक मुद्दा है। – hooligan

+0

हम्म इसलिए जब से आप अपने प्रश्न में पोस्ट किए गए कोड को एक पहेली में सही ढंग से काम करते हैं, तो यह कोड के साथ कोई समस्या नहीं है, अधिकतर कोण angular.js के संस्करण के साथ कोई समस्या है, या प्रोग्राम को प्रभावित करने वाले किसी अन्य चीज़ के साथ। इस मुद्दे का मूल्यांकन करने के लिए अधिक कोड आवश्यक है। – Claies

+3

इसे काम करने के लिए प्रबंधित किया गया, मुझे नहीं पता कि यह पहेली में क्यों काम करता है और मुझे इसे फॉर्म एक्शन में पास करने के लिए $ sce.trustAsResourceUrl() का उपयोग करना होगा। $ Sce सामान पर टिप के लिए धन्यवाद। – hooligan

11

मैं बदमाश के जवाब के साथ सहमत हैं। किसी कारण से, $ sce.trustAsURL काम नहीं कर रहा है। इसके बजाय, $ sce.trustAsResourceUrl ('') ने मेरे लिए काम किया था।

+1

हाँ निश्चित रूप से ट्रस्ट होने के लिए प्रतीत होता है AsResourceUrl कोणीय 1.4.7 में – captainclam

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