عندما أقوم بتشغيل هذا الاستدعاء، يستجيب لي Discourse بـ {locked: false}.
لقد حاولت قفل المشاركة يدويًا وفحص استدعاء واجهة برمجة التطبيقات (API) الذي يقوم به عميل Discourse، ويبدو مشابهًا جدًا للاستدعاء الذي أقوم به من تطبيقي، باستثناء طريقة المصادقة، ربما.
تم توثيق واجهة برمجة التطبيقات (API) لقفل منشور هنا Discourse API Docs ولكن نعم، لقد حاولت أيضًا هندسة عكسية لكيفية قيام عميل Discourse بذلك، ويبدو الأمر مشابهًا جدًا للطريقة التي أقوم بها من تطبيقي.
الكود هو params[:locked] === "true" ? locker.lock : locker.unlock
والذي يبدو أنه يقوم بمقارنة سلسلة نصية.
هذا يعني أنك ستحتاج إلى إرسال "locked": "true" وليس "locked": true وأن الوثائق أو الكود سيحتاج إلى تحديث ليعكس هذا السلوك أو لتغييره.
المتصفح لا يرسل طلب JSON، بل يرسل Content-Type: application/x-www-form-urlencoded والذي سيقوم بتفسير المعلمة كسلسلة نصية، وهذا هو سبب عملها في المتصفح.