سؤال

كيف يمكنك التغلب على مشكلة البرمجة النصية عبر مواقع Ajax على FireFox 3؟

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

المحلول

إذا كنت تستخدم jQuery، فستحتوي على وظيفة رد اتصال للتغلب على هذا:

http://docs.jquery.com/Ajax/jQuery.ajax#options

اعتبارًا من JQuery 1.2 ، يمكنك تحميل بيانات JSON الموجودة في مجال آخر إذا قمت بتحديد رد اتصال JSONP ، والذي يمكن القيام به على هذا النحو:"myurl?callback=؟".يستبدل jQuery تلقائيًا ؟مع اسم الطريقة الصحيح للاتصال ، اتصل على رد الاتصال المحدد.أو ، إذا قمت بتعيين نوع البيانات على "JSONP" ، فسيتم إضافة رد اتصال تلقائيًا إلى طلب AJAX الخاص بك.

بدلاً من ذلك، يمكنك تقديم طلب ajax الخاص بك إلى برنامج نصي من جانب الخادم يقوم بإجراء الاتصال عبر النطاقات نيابةً عنك، ثم يقوم بتمرير البيانات مرة أخرى إلى البرنامج النصي الخاص بك

نصائح أخرى

لتحديث الإجابة (أعتقد أن هذا في الغالب لصالحي عندما أبحث عن هذه الإجابة لاحقًا)، إذا كنت تقوم بتحميل XML أو أي شيء آخر، يمكنك دائمًا سؤال المستخدم عما إذا كان سيسمح لنا بالقراءة من موقع آخر باستخدام هذا الرمز :

try {
    if (netscape.security.PrivilegeManager.enablePrivilege)
        netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch (e) { 
    alert("Sorry, browser security settings won't let this program run."); 
    return; 
}

(من كتاب خدمات الويب RESTful) ولكن هذا يعمل فقط في فايرفوكس، عندما يتم تحميل ملف html من ملف محلي.لذا، ليس ذلك مفيدًا.

حل آخر:إذا كان كل ما تحتاجه هو الرؤوس، فيمكنك تحديد "HEAD" كطريقة ولن يؤدي ذلك إلى حدوث مشكلة أمنية.على سبيل المثال، إذا كنت تريد فقط معرفة ما إذا كانت صفحة الويب موجودة أم لا.

var client = new XMLHttpRequest();
client.open("HEAD", my_url, false);
client.send(null);
if(client.readyState != 4 || client.status != 200) //if we failed
    alert("can't open web page");

بعض التفاصيل الإضافية ستكون لطيفة:ما هي مكتبة AJAX التي تستخدمها، وما الذي تريد تحقيقه، وكيف تفعل ذلك.

على سبيل المثال، يمكن أن يكون طلب Ajax عبر النطاق، وهو أمر غير مسموح به.في هذه الحالة استخدم JSON.

لقد واجهت هذه المشكلة مؤخرًا وكان ذلك أثناء تحميل AJAX للطلب المحلي، وليس مشكلة البرمجة النصية عبر المواقع.ويبدو أن جيمي نفسه يعاني من نفس المشكلة.يبدو أن هذه هي مشكلة أمان FF، توضح هذه المقالة السبب والحل للوصول إلى رمز uri المقيد ":"مشكلة 1012.

آسف ، حصلت على هذا الخطأ باستخدام jQuery $ .ajax على Firefox 3.حاول اقتراح JSONP ولكني أعتقد أن هذا سيعمل فقط مع شيء سيخدم JSON.أحاول إنشاء عينة من ملفات HTML المستندة إلى ملف HTML والتي ستقوم بسحب البيانات من Yahoo! Finance ، لكنها تخدم .CSV ، لذلك أعتقد أنني Sol.– جيمي شاندرا (9 سبتمبر الساعة 17:20)

أتمنى أن تجدها مفيدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top