سؤال

على موقع ويب أنا أبني، عند تسجيل الدخول (لأن قاعدة البيانات موجودة على خادم آخر)، أستخدم جون الحشو للتحقق مما إذا كان المستخدم كأوضاع الاعتماد الصحيحة.

انها تعمل بلا عيوب (IE7، IE8 & FF)، حتى جربته كروم، سفاري وأوبرا حيث إنها كارثة كاملة.

    $.ajax({
  type: "GET",
  dataType: "jsonp",
  url: "http://someurl.com",
  data: aRequestData,
  cache: false,
  error: function (XMLHttpRequest, textStatus, errorThrown) {
    // typically only one of textStatus or errorThrown
    // will have info
    alert("Error occured textStatus=" + textStatus + " errorThrown=" + errorThrown);
  },
  success: function(data) {
    alert('success');    
  }
});

بسيطة وبسيطة ويعمل في نافذة المتصفح، ومع ذلك، لمفاجحتي الكبيرة أنها لا تعمل في Chrome، Safari & Opera، لم تصل إلى تنبيه النجاح.

هل هنالك أي شخص يستطيع حل هذه المشكلة؟

شكرا.

هل كانت مفيدة؟

المحلول 2

تم ترك المشكلة فوق رأس صفحة HTML، في "سميكة سميكة" (JQuery سميكة البرنامج المساعد) حيث تم إجراء مكالمة AJAX!

فايرفوكس أو أي لا مانع الرؤوس المتكررة في هذه الحالة، ولكن محرك WebKit يفعل!

اضطررت فقط إلى إزالة الرؤوس الإضافية، وكان كل شيء مرة أخرى على المسارات.

شكرا لكم جميعا!

نصائح أخرى

هل حاولت استخدام أدوات المطور المدمجة في Safari و Chrome للتحقق مما إذا كنت ترغب في استجابة مع رمز حالة HTTP 200 من طلبك؟

في Chrome، يمكنك الوصول إلى هذه الأدوات من القائمة "عرض"، واختر علامة التبويب "الموارد" لرؤية جميع الطلبات المحرز. أعتقد أنك ستحتاج إلى تنشيط هذه الأدوات في بعض الإعداد عند استخدام Safari.alt text

يمكنك أيضا محاولة إنشاء إصدار دون مسج لإخراج الأخطاء التي تم إجراؤها، إذا لم تحصل على الحالة 200 من مكالماتك، فما أعتقد أنه سيفشل JQuery دون استئناف أي وظائف خطأ، فإن الوثائق لاستخدام JSONP مع JQuery ليست موجزة للغاية فيما يتعلق معالجة الأخطاء.

قم بإنشاء ملف HTML مع إصدار تم تحريره من المحتوى التالي وحمله في المتصفحات الخاصة بك:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title />
      <script type="text/javascript">
         function ws_results(obj) {
             alert(obj);
         }
      </script>
      <script type="text/javascript" src="http://someurl.com?foo=bar&amp;callback=ws_results" />
   </head>
   <body />
</html>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top