2015-02-17 5 views
11

मैं एक छोटे से AngularJS अनुप्रयोग जहाँ मैं एक अपलोड की गई छवि को खोलने के लिए कोशिश कर रहा हूँ और इस मुद्दे में चल रहा है, जहां कोणीय कहते हैं "असुरक्षित" है यूआरएल की शुरुआत में । मैं यूआरएल को साफ़ करने में मेरे ऐप config में निम्न पंक्ति को शामिल किया है, लेकिन यह मेरे लिए काम नहीं कर रहा:कोणीय जोड़ने "असुरक्षित" जब एक फ़ाइल डाउनलोड करने के लिए कोशिश कर रहा है यूआरएल के लिए

$compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|blob:chrome-extension):|data:image|\//); 

मैं कोणीय v1.3.0 उपयोग कर रहा हूँ तो मैं सही संपत्ति नाम का उपयोग कर रहा हूँ। मैं ज्यादातर क्रोम का उपयोग कर रहा हूं, लेकिन मेरे पास अन्य ब्राउज़रों में एक ही समस्या है। इसके अलावा, मेरी छवि की शुरुआत इस तरह दिखती है:

unsafe:data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUg... 

कोई भी विचार मेरे रेगेक्स में मुझे क्या याद आ रही है? अग्रिम धन्यवाद!

+0

आप अंतिम' निकालना चाहें। – ndn

+0

यदि आप समस्या कथन को सरल बना सकते हैं, तो कोई आपकी मदद करने में सक्षम होगा। आप कुछ के लिए नियमित अभिव्यक्तियों का उपयोग कर रहे हैं। आप केवल सामान/प्रतिस्थापन जैसी चीजें ही कर सकते हैं .. कोई भी इंजन आपके द्वारा उपयोग की जाने वाली सरल अभिव्यक्ति को समझता है। – sln

+0

@sln: [https://docs.angularjs.org/api/ng/provider/$compileProvider](https://docs.angularjs.org/api/ng/: s/वह इस कोणीय विधि करने के लिए regex गुजर रहा है प्रदाता/$ compileProvider) –

उत्तर

0

आप $compileProvider.imgSrcSanitizationWhitelist() regexp पैरामीटर के बिना यह रिटर्न वर्तमान में परिभाषित regexp हैं।

एक खाली कोणीय 1.3.0 पर इस कोड चल रहा है:

app.config(function ($compileProvider) { 
    console.log($compileProvider.imgSrcSanitizationWhitelist()); // 
}); 

मैं इस परिणाम मिला - /^\s*((https?|ftp|file|blob):|data:image\/)/

और Base64 का उपयोग करके बुनियादी <img ng-src="{{main.src}}"> वास्तव में काम करता है के रूप में आप देख सकते हैं here JPEG एन्कोडेड, और एक पीएनजी के साथ another one। Regexp देखने के लिए कंसोल को भी देखें। आप इसे worked रूप में अच्छी तरह देख सकते हैं

<img ng-src="data:image/jpeg;base64,{{main.src}}">

:

एक अन्य परीक्षण मैं चला चुके data:image/jpeg;base64, गुंजाइश आबद्ध स्ट्रिंग से बाहर ले जाने और इसे एनजी-src डाल करने के लिए है।

एक लम्बी कहानी कम करें - आप डेटा के लिए 1.3.0 में और ऊपर एक regexp परिभाषित करने की जरूरत नहीं है: image/*, के रूप में यह डिफ़ॉल्ट रूप से परिभाषित किया है।

मुझे यकीन नहीं है कि समस्या क्या है, लेकिन हो सकता है कि आपको imgSrcSanitizationWitelist की एक और परिभाषा मिली है या तो आपके कोड में या डेटा यूरी किसी भी तरह टूटा हुआ है। `या कुछ और फॉरवर्ड स्लैश मिलान किया जाएगा है |

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

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