java - window.open redirects to a URL but the original window shows a white blank page after redirection -
छापनेवाला बाहर = response.getWriter (); out.print ( "& LT; स्क्रिप्ट & gt;"); out.print ( "window.open ( 'http: //chfdsd/manu/zseriessection9.pdf','_blank')"); out.print ( "& lt; / स्क्रिप्ट & gt;"); यह स्निपेट स्ट्रट्स में एक्शन क्लास में है मैं इसे यूआरएल को एक नई विंडो में रीडायरेक्ट करने के लिए उपयोग कर रहा हूं। लेकिन, इस स्क्रिप्ट निष्पादित होने के बाद मूल विंडो को बदलना नहीं चाहिए। लेकिन मामला वह नहीं है। कृपया मदद करें!
ऐसा इसलिए है क्योंकि आप सर्वर पर प्रत्यक्ष अनुरोध कर रहे हैं सर्वर प्रतिक्रिया केवल उस हार्डकोड जावास्क्रिप्ट का टुकड़ा है जो आपके ब्राउज़र क्लाइंट में लिखा जाएगा। यदि आप अपने खाली पृष्ठ के स्रोत कोड की जांच करते हैं तो आपको वह कोड दिखाई देगा: & lt; स्क्रिप्ट & gt; Window.open ('http: //chfdsd/manu/zseriessection9.pdf','_blank') & lt; / स्क्रिप्ट & gt; इसलिए यह रिक्त पृष्ठ नहीं दिखा रहा है, प्रदर्शित करने के लिए कोई HTML घटक नहीं है। आपकी समस्या को हल करने के लिए, आपके पास कुछ विकल्प:
-
एक नया पृष्ठ / टैब में इस अनुरोध को पूरा करें, फिर सर्वोलेट अनुरोध वांछित पृष्ठ / सामग्री पर एक रीडायरेक्ट लौटाता है। उदाहरण के लिए:
& lt; फ़ॉर्म क्रिया = "$ {request.contextPath} / पथ / से / सर्विसेट" लक्ष्य = "रिक्त" & gt; & Lt;! - आपके फ़ॉर्म घटक ... - & gt; & Lt; / प्रपत्र & gt; और अपने सर्विस में:
response.redirect ("http: //chfdsd/manu/zseriessection9.pdf"); / / -
प्रिंटवेयर का उपयोग करने की कोई ज़रूरत नहीं है एक एजेक्स अनुरोध करना जो नेविगेट करने के लिए URL देता है। फिर, एक नया पृष्ठ में इस URL पर नेविगेट करने के लिए अजाक्स प्रतिक्रिया की प्रक्रिया करें। Jquery का उपयोग:
$। Post ("$ {request.contextpath} / path / to / servlet", फ़ंक्शन (प्रतिक्रिया) {window.open (प्रतिक्रिया, 'रिक्त');}) ; तब अपने सर्वलेट में:
PrintWriter बाहर = response.getWriter (); out.print ( "http: //chfdsd/manu/zseriessection9.pdf"); ध्यान दें कि और अधिक सुरुचिपूर्ण समाधान हैं, लेकिन इनमें से कोई भी कार्य करेगा।
Comments
Post a Comment