কীভাবে জাভাস্ক্রিপ্ট ব্যবহার করে পুনরায় লোড করবেন?


177

আমার এজেএক্সের সাথে একটি সাইনআপ ফর্ম রয়েছে যাতে আমি কোনও ত্রুটি ঘটলে যে কোনও সময় পুনরায় রিচটাছা চিত্রটি রিফ্রেশ করতে চাই (যেমন ইতিমধ্যে ব্যবহারকারীর নাম)।

আমি জাভাস্ক্রিপ্ট ব্যবহার করে এটি পুনরায় লোড করার জন্য রেক্যাপ্টচার সাথে সামঞ্জস্যপূর্ণ একটি কোড খুঁজছি।


1
বিরক্ত করবেন না। ব্যবহারকারীর নাম নেওয়া হলে কেন ক্যাপচা পরিবর্তন করবেন?
এসএলএক্স

18
@ এসলাক্স : সম্ভবত যেহেতু তিনি প্রথমে ক্যাপচাটি পরীক্ষা করেন এবং তারপরে ব্যবহারকারীকে পরীক্ষা করেন - এবং একবার ক্যাপচা ব্যবহার করা হলে তা আর কার্যকর হবে না। দূষিত ব্যবহারকারীর চারপাশে অন্যভাবে এটি করা সার্ভারকে সহজেই ত্রুটিযুক্ত করতে পারে এবং ক্যাপচা নিয়ে বিরক্ত না হয়ে ব্রুট ফোর্স ব্যবহার করে সমস্ত ব্যবহারকারীর তালিকা পেতে পারে।
টমাসজ নুরকিউইচজ

1
@ টমাসনুরকিউইজ আপডেট করুন: দূষিত ব্যবহারকারী বৈধতার জন্য একই পুনরায় ক্যাপচা একবারে জমা দিতে সক্ষম হবে না। সুতরাং না, এখানে ব্রুটফোর্স সম্ভব নয়। ক্যাপচাকে রিফ্রেশ করার কারণটি হল ব্যবহারকারীকে আবার এটি প্রবেশ করার অনুমতি দেওয়া।
টনি সেপিয়া

আমি বিশ্বাস করি যে বোটের বৈধতা কোথায় রয়েছে তার উপর নির্ভর করে কোনও দক্ষ আক্রমণকারী সময়সীমার আক্রমণগুলি কী ডেটা ভুল তা খুঁজে পেতে পারে; আমি আমার প্রথম চেক হিসাবে রাখতে পছন্দ করি এবং তত্ক্ষণাত যদি তারা ব্যর্থ হয় তবে তা অস্বীকার করে, আমার সার্ভারে লোড কমাতেও সহায়তা করে যাতে আমি যেভাবেই হোক প্রত্যাখ্যান করা হবে তখন ডিবি কোয়েরি করছি না
স্টিভ বাইরন

উত্তর:


29

গুরুত্বপূর্ণ: রেক্যাপচা এপিআইয়ের সংস্করণ 1.0 আর সমর্থিত নয়, দয়া করে সংস্করণ 2.0 এ আপগ্রেড করুন।

আপনি grecaptcha.reset () ব্যবহার করতে পারেন ; ক্যাপচা পুনরায় সেট করতে।

উত্স: https://developers.google.com/recaptcha/docs/verify#api-request


370

রি ক্যাপচা ভি 2 এর জন্য, ব্যবহার করুন:

grecaptcha.reset();

আপনি যদি পুনরায় ক্যাপচা ভি 1 ব্যবহার করছেন ( সম্ভবত না ):

Recaptcha.reload();

এটিতে যদি ইতিমধ্যে লোড হওয়া রিক্যাপচা থাকে window

(নীচে @ সেবিএইচের মন্তব্যের ভিত্তিতে আপডেট হয়েছে))


20
যে কেউ নতুন grecaptcha.reset();
রেকটচা

আমি grecaptcha.reset();এটি আমার প্রতিক্রিয়া অ্যাপসের জন্য ব্যবহার করছি এবং এটি পুরোপুরি কার্যকর হয়
ইউসান

4
আপনারা না থাকলে নিশ্চিত grecaptcha লোড হয়, ব্যবহারif (window.grecaptcha) grecaptcha.reset();
fred727

যদিও এটি ক্যাপচাকে পুনরায় লোড করে, ক্যাপচা প্রতিক্রিয়ার ক্ষেত্রের মানটি আমার ফর্মটি বৈধ রেখে, সরানো হবে না।
দামিয়ান সবুজ

58

আপনি যদি সংস্করণ 1 ব্যবহার করছেন

Recaptcha.reload();

আপনি যদি সংস্করণ 2 ব্যবহার করছেন

grecaptcha.reset();

1
স্বীকৃত উত্তরটি অনুলিপি করেছেন এবং 3 বছর পরে পোস্ট করেছেন। Urg।
পিআর হোয়াইটহেড

@ পিপিআর হোয়াইটহেড দয়া করে সম্পাদনার ইতিহাস দেখুন। বিটিডাব্লু, ডাউন ভোটের জন্য ধন্যবাদ
দাশুন

আমি করেছি, আপনি নিজের সম্পাদনা করেননি, এবং আপনি প্রথমে এপিআই-তে পরিবর্তন প্রতিবিম্বিত করার জন্য গৃহীত উত্তর আপডেট হওয়ার 3 মাস পরে যুক্ত করেছিলেন - প্রাথমিক উত্তরটির প্রাসঙ্গিকতা এবং এটি যুক্ত হওয়ার কয়েক বছর পরে এটি প্রভাবিত করে। আমি এটিকে স্বল্প করে দিয়েছি কারণ এটি গৃহীত উত্তরটি আরও কার্যকর।
পিআর হোয়াইটহেড

2
আমি এই উত্তরটি যুক্ত করেছি কারণ আমি একই সমস্যার মুখোমুখি হয়েছিলাম। যদিও গৃহীত উত্তরগুলি সঠিক উত্তরটিকে প্রতিফলিত করেছিল তা যথেষ্ট পরিষ্কার ছিল না। কমপক্ষে আমার জন্য, সে কারণেই আমি স্পষ্ট বিচ্ছেদ সহ একটি নতুন উত্তর হিসাবে যুক্ত করার সিদ্ধান্ত নিয়েছি (স্বীকৃত উত্তরটি সংস্করণগুলির মধ্যে পার্থক্যগুলি নোট করতে ব্যর্থ হয়েছিল)।
দাসুন

8
grecaptcha.reset(opt_widget_id)

রিপ্যাচচ্যা উইজেট পুনরায় সেট করুন। একটি alচ্ছিক উইজেট আইডি পাস হতে পারে, অন্যথায় ফাংশনটি প্রথম তৈরি করা উইজেট পুনরায় সেট করে। (গুগলের ওয়েব পৃষ্ঠা থেকে)


এটি পৃষ্ঠায় কেবল প্রথম ক্যাপচা পুনরায় সেট করে
ম্যাক্সওয়েল স্ক

@ ম্যাক্সওয়েলস. আপনি কি পোস্টটি পড়েছেন? Ptionচ্ছিকভাবে আপনি একটি উইজেট আইডি পাস এবং নবম উইজেট মুছতে পারেন। আপনি যদি পাস না করেন তবে প্রথমটি পুনরায় সেট করা হবে।
কুটালিয়া

1
উইজেটের আইডি ঠিক কী? আমি রিপ্যাচচা <ডিভিউ> এর এইচটিএমএল আইডিতে পাস করার চেষ্টা করেছি তবে একটি "ত্রুটিযুক্ত অবৈধ পুনরায় কার্ডের ক্লায়েন্ট আইডি" পেয়েছি got আমি ভাবছি আমাকে স্পষ্টভাবে উইজেটটি রেন্ডার করতে হবে কারণ আমি মনে করি রেন্ডার () পদ্ধতিটি আমার প্রয়োজনীয় আইডিটি ফিরিয়ে দেয়।
পিট

6

এটা চেষ্টা কর

<script type="text/javascript" src="//www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
<script type="text/javascript">
          function showRecaptcha() {
            Recaptcha.create("YOURPUBLICKEY", 'captchadiv', {
              theme: 'red',
              callback: Recaptcha.focus_response_field
            });
          }
 </script>

<div id="captchadiv"></div>

আপনি যদি শো রেকাপ্টা কল করেন তবে ক্যাপচাডিভটি একটি নতুন পুনর্নির্মাণের উদাহরণ সহ পপুলেট হবে।


আপনি কি আপনার কোড পরিবর্তন করতে পারবেন এবং শোরেটচা অনলোডটি কল করতে পারবেন? এটি কি আপনাকে সাহায্য করছে?
টিম

6

অথবা আপনি কেবল রিফ্রেশ বোতামে ক্লিক করতে পারেন

// If recaptcha object exists, refresh it
    if (typeof Recaptcha != "undefined") {
      jQuery('#recaptcha_reload').click();
    }

1
কোনও কারণে, Recaptchaএবং grecaptchaউভয়ই আমার পৃষ্ঠায় অপরিবর্তিত। এটি আমার পক্ষে সামান্য সংশোধন করে কাজ করেছে:if( $("#recaptcha_reload").length > 0 ){ ....
ন্যাট-বিট ইন্ট

আমি এটি ব্যবহার করতে সক্ষম হলাম যখন এটির উপাদানগুলি গণনা ছাড়াই কোনও অ্যারের পুনরাবৃত্তি শেষ হয়।
এম



2

আপনি যদি রেক্যাপ্টা এপিআই এর সংস্করণ 1.0 ব্যবহার করেন তবে দয়া করে সংস্করণ 2.0 তে আপগ্রেড করুন (সংস্করণ 1.0 আর সমর্থিত নয়)

grecaptcha.reset();ক্যাপচা পুনরায় সেট করতে ব্যবহার করুন ।


0

আপনি যদি নতুন পুনঃনির্মাণ 2.0 ব্যবহার করেন তবে পিছনের কোডটির জন্য এটি ব্যবহার করুন:

ScriptManager.RegisterStartupScript(this, this.GetType(), "CaptchaReload", "$.getScript(\"https://www.google.com/recaptcha/api.js\", function () {});", true);

সহজ জাভাস্ক্রিপ্ট জন্য

<script>$.getScript(\"https://www.google.com/recaptcha/api.js\", function () {});</script>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.