با سلام خدمت دوستان و استاد مدائنی گرامی
کپچایی که من استفاده کردم درست عمل میکنه و موقع رفرش اون برای بار اول هم درست عمل میکنه و کپچا تغییر میکنه اما سری های بعد که کلیک میکنی دیگه رفرش نمیشه ؟
<script type="text/javascript"> $(function () { $('#refresh').click(function () { $.ajax({ url: '@Url.Action("CaptchaImage", "Account")', type: "GET", data: null, success: function (data) { $("#imgcpatcha").attr("src", "/Account/CaptchaImage?" + data); } }) }); }); </script>
چه اروری میده ؟
با فایر باگ بررسی کنید و متن ارور را قرار دهید
هیچ ارروری نمیده و درست عمل میکنه ، فقط تصویر تغییر نمیکنه یعنی همون تصویر و فقط برمیگردونه و لی خب بار اول درست عمل میکنه ، اینم کد سمت سرورم :
public ActionResult CaptchaImage(string prefix, bool noisy = true) { var rand = new Random((int)DateTime.Now.Ticks); //generate new question int a = rand.Next(10, 99); int b = rand.Next(0, 9); var captcha = string.Format("{0} + {1} = ?", a, b); //store answer Session["Captcha" + prefix] = a + b; //image stream FileContentResult img = null; using (var mem = new System.IO.MemoryStream()) using (var bmp = new System.Drawing.Bitmap(130, 30)) using (var gfx = System.Drawing.Graphics.FromImage((System.Drawing.Image)bmp)) { gfx.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; gfx.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; gfx.FillRectangle(System.Drawing.Brushes.White, new System.Drawing.Rectangle(0, 0, bmp.Width, bmp.Height)); //add noise if (noisy) { int i, r, x, y; var pen = new Pen(Color.Yellow); for (i = 1; i < 10; i++) { pen.Color = Color.FromArgb( (rand.Next(0, 255)), (rand.Next(0, 255)), (rand.Next(0, 255))); r = rand.Next(0, (130 / 3)); x = rand.Next(0, 130); y = rand.Next(0, 30); gfx.DrawEllipse(pen, x - r, y - r, r, r); } } //add question gfx.DrawString(captcha, new System.Drawing.Font("Tahoma", 15), System.Drawing.Brushes.Gray, 2, 3); //render as Jpeg bmp.Save(mem, System.Drawing.Imaging.ImageFormat.Jpeg); img = this.File(mem.GetBuffer(), "image/Jpeg"); } return img; }
شاید خود کتابخانه اش مشکل داره
از یک نمونه دیگه استفاده کنید
کتابخانه کپچا منظورتونه ؟
اصلا کتابخانه نیست به وسیله همین ActionResulte من کپچا رو تولید میکنم و ازش استفاده میکنم ، بزای رفرش صفحه هم از یک درخواست آجاکسی میفرستم و بعد جایگذاری میکنم
بله الان متوجه شدم
کد رو Trace کنید ببینید روی کلید رفرش که میزنید آیا هربار وارد اکشن میشه ؟
اگر بله مشکل از کدهای ajax هست
بله هر بار وارد اکشن میشه ، ولی فقط بار اول تصویر رو تغییر میده ، سری های بعد وارد میشه ولی تغییر نمیده دیگه تصویر رو
الان مشکل در اسکریپت است
بار اول درست کار میکنه ولی بار بعدی از کار میوفته
متاسفانه نمیتونم حدس بزنم مشکل کجاست و باید کدتون و اسکریپت ها Trace بشوند تا مشخص بشه
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)