Socket.io: خطأ CORS في الإصدار الأخير

تم إنشاؤها على ٩ نوفمبر ٢٠٢٠  ·  7تعليقات  ·  مصدر: socketio/socket.io

يعمل الإصدار الأقدم من socket.io بشكل جيد ، لكن الإصدار الأخير يظهر خطأ CORS عند محاولة الاتصال من الأمام إلى الخلف. لقد أضفت أيضًا برامج وسيطة CORS إلى الخادم ولكنها لا تعمل. ولكن عندما أعود إلى الإصدار الأقدم من المقبس ، فإنه يعمل بشكل جيد.

image

question

التعليق الأكثر فائدة

أهلا! نأسف لذلك ، الوثائق قيد التحديث للإصدار 3.

لقد أضفت قسمًا حول CORS هنا: https://socket.io/docs/v3/handling-cors/

هل يمكنك التحقق مما إذا كان هذا واضحًا بدرجة كافية؟

ال 7 كومينتر

مرحبًا ، أعتقد أن هذا يرجع إلى أن التوثيق لا يعكس التغيير الذي تم إجراؤه مع الإصدار 3.0.
يرجى الاطلاع على هذا الرابط https://socket.io/docs/migrating-from-2-x-to-3-0/ ، قسم معالجة CORS.

لن أكذب ، إنه نوع من المشكله. بدأت اللعب مع socket.io اليوم فقط وهناك حواجز طرق على الفور. أود الرجوع إلى الإصدار 2.x ولكن يبدو أن الوثائق لا تحتوي على إصدار.

أهلا! نأسف لذلك ، الوثائق قيد التحديث للإصدار 3.

لقد أضفت قسمًا حول CORS هنا: https://socket.io/docs/v3/handling-cors/

هل يمكنك التحقق مما إذا كان هذا واضحًا بدرجة كافية؟

darrachequesne شكرا ، تم حلها!

قد يتسبب هذا في مشاكل للأشخاص الذين يعانون من مشاريع glitch.me. عند ترقية الإصدار إلى الإصدار 3 ، تبدأ مشاريع glitch.me في الرد بالخطأ الذي نشره سيف شهاب. ومع ذلك ، يبدو أن CORS ضد glitch.me و AWS's TOS وستتم إزالته المتوقعة. هل توجد طريقة لتشغيل إطار عمل الإصدار 3 بدون تضمين CORS؟

لا أفهم تمامًا ما هو CORS ولماذا يمثل مشكلة. أنا فقط أحاول تجميع خطة.

مرحبًا quindo - أردت فقط توضيح أن تمكين CORS لا يتعارض مع شروط خدمة Glitch's TOS. كان بعض المستخدمين يستخدمون حزم npm معينة مثل CORS-anywhere لأسباب خبيثة وهذا مخالف لشروط الخدمة الخاصة بنا.

لمن يواجه المشكلة: -

// server-side
const io = require("socket.io")(httpServer, {
  cors: {
    origin: "https://example.com",
    methods: ["GET", "POST"],
    allowedHeaders: ["my-custom-header"],
    credentials: true
  }
});

// client-side
const io = require("socket.io-client");
const socket = io("https://api.example.com", {
  withCredentials: true,
  extraHeaders: {
    "my-custom-header": "abcd"
  }
});

أعتقد أنه يمكن إغلاق هذا الآن. يرجى إعادة الفتح إذا لزم الأمر.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات