اسماعيل صدوقي نشر 30 يوليو 2021 أرسل تقرير نشر 30 يوليو 2021 (معدل) مرحبا لدي موقع عند تجربته في هاتف أندرويد و في الحاسوب يعمل بشكل عادي، لكن بعد ارساله للعميل أخبرني أنه لا يعمل في جهاز الأيفون في كل من متصفح جوجل و سفاري؟ س1:هل لدى أحدكم هاتف أيفون يقوم بتجربة التصويت و إخباري اذا زر التصويت يعمل هذا الرابط: http://voting-system-sadouki.herokuapp.com/VXgptEmRD س2: ليس لدي هاتف أيفون كيف بإمكاني الآن تتبع المشكلة؟ماذا تفعل لو كنت في مكاني؟ تم التعديل في 30 يوليو 2021 بواسطة اسماعيل صدوقي تعديل السؤال اقتباس
1 Wael Aljamal نشر 30 يوليو 2021 أرسل تقرير نشر 30 يوليو 2021 المشكلة موجودة، زر التصويت لا يعمل، لا يتم تحديث العداد. 1 اقتباس
0 اسماعيل صدوقي نشر 30 يوليو 2021 الكاتب أرسل تقرير نشر 30 يوليو 2021 بتاريخ 3 دقائق مضت قال Wael Aljamal: المشكلة موجودة، زر التصويت لا يعمل، لا يتم تحديث العداد. لكن الزر يعمل في هواتف الأندرويد و الحاسوب بشكل عادي، فقط المشكلة في هواتف الأيفون، ما تفسيرك لذلك؟ اقتباس
0 Wael Aljamal نشر 30 يوليو 2021 أرسل تقرير نشر 30 يوليو 2021 بتاريخ 2 ساعات قال اسماعيل صدوقي: لكن الزر يعمل في هواتف الأندرويد و الحاسوب بشكل عادي، فقط المشكلة في هواتف الأيفون، ما تفسيرك لذلك؟ توجه لمتصفح chrome ثم Developer Tools/Settings/Overrides ثم User agent واختر نوع المستخدم iPhone/iPad أو Safari يفترض أن يعمل المتصفح مثل Safari بكل خصائص front-end ضمنه. السبب على الأغلب:: هل تستخدم أي مكتبات أو خاصيات غير مدعومة على Safari أو ios web بشكل عام؟ تأكد من إصدار المكتبات، ويمكنك مشاركة هذه المعلومات لنعمل على حل المشكلة. 1 اقتباس
0 اسماعيل صدوقي نشر 30 يوليو 2021 الكاتب أرسل تقرير نشر 30 يوليو 2021 بتاريخ 2 ساعات قال Wael Aljamal: توجه لمتصفح chrome ثم Developer Tools/Settings/Overrides ثم User agent واختر نوع المستخدم iPhone/iPad أو Safari عند استخدامها لا يحدث اي مشاكل, بحثت عن بعض المواقع التي تحاكي اجهزة الأيفون وجدت هذا الموقع: http://www.responsinator.com/?url=voting-system-sadouki.herokuapp.com%2FVXgptEmRD عند الضغط على زر تصويت يظهر في console خطأ 419: message "CSRF token mismatch." الكود الذي استخدمه لارسال التصويت لقاعدة البيانات: $.ajax({ type: 'post', url: "{{ route('vote') }}", data: { '_token': "{{ csrf_token() }}", 'id': id, 'voted': voted, 'unique_url': unique_url }, success: function (data) { if(data.status == true) { // code } else { // code } }, error: function(reject) { } 1 اقتباس
0 Wael Aljamal نشر 30 يوليو 2021 أرسل تقرير نشر 30 يوليو 2021 بتاريخ 19 دقائق مضت قال اسماعيل صدوقي: الكود الذي استخدمه لارسال التصويت لقاعدة البيانات: لنحل مشكلة csrf سنقوم بوضع عنصر html وهو meta tag يخزن هذه القيمة: ضعه في الترويسة مثلا.. (صفحة HTML الرئيسية للموقع main Layout <meta name="csrf-token" content="{{ csrf_token() }}" /> كما يمكن يمكن عمل زر ومن ثم إخفاءه : type="hidden" ويمكن هكذا <input type="hidden" name="_token" value="{!! {{ 'csrf_token()' }} !!}"> ثم عندما تريد إرسال الطلبية نجلب قيمته meta: <script type="text/javascript"> $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); </script> ونمررها في الترويسة.. نضع هذه الشيفرة في المسارين التاليين حسب إصدار لارافل، وأرى أنك تستخدم إصدار قديم resources/js/bootstrap.js file for Laravel 5.7 and resources/assets/js/bootstrap.js for Laravel 5.6 هل تضع قيمة للجلسة session ؟ مثل Timeout ؟ يمكن زيادة مدة الجلسة: config/session.php 'lifetime' => 360 1 اقتباس
0 اسماعيل صدوقي نشر 30 يوليو 2021 الكاتب أرسل تقرير نشر 30 يوليو 2021 بتاريخ 21 دقائق مضت قال Wael Aljamal: لنحل مشكلة csrf سنقوم بوضع عنصر html وهو meta tag يخزن هذه القيمة: ضعه في الترويسة مثلا.. (صفحة HTML الرئيسية للموقع main Layout <meta name="csrf-token" content="{{ csrf_token() }}" /> كما يمكن يمكن عمل زر ومن ثم إخفاءه : type="hidden" ويمكن هكذا <input type="hidden" name="_token" value="{!! {{ 'csrf_token()' }} !!}"> ثم عندما تريد إرسال الطلبية نجلب قيمته meta: <script type="text/javascript"> $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); </script> ونمررها في الترويسة.. نضع هذه الشيفرة في المسارين التاليين حسب إصدار لارافل، وأرى أنك تستخدم إصدار قديم resources/js/bootstrap.js file for Laravel 5.7 and resources/assets/js/bootstrap.js for Laravel 5.6 هل تضع قيمة للجلسة session ؟ مثل Timeout ؟ يمكن زيادة مدة الجلسة: config/session.php 'lifetime' => 360 قمت بكافة التعديلات و للأسف مازالت نفس المشكلة. بالنسبة لإصدار لارافيل أستعمل لارفيل 8! اقتباس
0 Wael Aljamal نشر 30 يوليو 2021 أرسل تقرير نشر 30 يوليو 2021 بتاريخ 7 دقائق مضت قال اسماعيل صدوقي: قمت بكافة التعديلات و للأسف مازالت نفس المشكلة. بالنسبة لإصدار لارافيل أستعمل لارفيل 8! ضمن main layout لنبطل التخزين المؤقت: @guest <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Expires" content="0" /> <meta http-equiv="refresh" content="{{config('session.lifetime') * 60}}"> @endguest ربما سبب المشكلة في ملفات الكوكيز، لاحظت Apple Bug Reporter PID #13966978. حيث إن قمت بتثبيت عدة قيم كوكيز مباشرة فهذا لن يعمل، بل يجب وضع قيمة بسيطة كأول كوكيز يتم تخزينها: setcookie("hi","true"); ثم أكمل باقي الكوكيز. إن لم تعمل ربما يحل المشكلة التالي: Cross-domain cookies/sessions in Safari 1 اقتباس
السؤال
اسماعيل صدوقي
مرحبا لدي موقع عند تجربته في هاتف أندرويد و في الحاسوب يعمل بشكل عادي، لكن بعد ارساله للعميل أخبرني أنه لا يعمل في جهاز الأيفون في كل من متصفح جوجل و سفاري؟
س1:هل لدى أحدكم هاتف أيفون يقوم بتجربة التصويت و إخباري اذا زر التصويت يعمل هذا الرابط:
http://voting-system-sadouki.herokuapp.com/VXgptEmRD
س2: ليس لدي هاتف أيفون كيف بإمكاني الآن تتبع المشكلة؟ماذا تفعل لو كنت في مكاني؟
تم التعديل في بواسطة اسماعيل صدوقيتعديل السؤال
7 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.