Samer Alashqar نشر 2 يونيو 2023 أرسل تقرير نشر 2 يونيو 2023 السلام عليكم.. لدي هذا الكود في App Script function onEdit(e) { //console.log("Old value: " + e.oldValue); //console.log("New value: " + e.newValue); const url = "http://localhost:8000/edit"; // Replace with your localhost URL const options = { "method": "POST", "muteHttpExceptions": true }; UrlFetchApp.fetch(url, options); } الذي يقوم بعمل requist الى السيرفر الخاص بي: app.use((req, res, next) => { res.setHeader("Access-Control-Allow-Origin", "*"); res.header( "Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept" ); next(); }); app.post("/edit", async (req,res) => { console.log('Incoming request:', req); console.log("hi") res.send('Hello World!'); } ) لكنني لا اتلقى اي طلب على ال endpoint خاصتي. 1 اقتباس
0 Mustafa Suleiman نشر 2 يونيو 2023 أرسل تقرير نشر 2 يونيو 2023 الكود سليم، لكن كمحاولة استخدم الكود التالي: function onEdit(e) { const url = "http://localhost:8000/edit"; // استبدله بعنوان URL الصحيح لخادمك الشخصي const options = { method: "POST", headers: { "Content-Type": "application/json", }, payload: JSON.stringify(e), // إرسال بيانات التعديل كجزء من الجسم (payload) للطلب muteHttpExceptions: true, }; try { UrlFetchApp.fetch(url, options); } catch (error) { console.error("حدث خطأ أثناء إرسال الطلب:", error); } } قمت بإضافة خاصية "headers" لتعيين نوع المحتوى إلى "application/json"، كما قمت بتحويل بيانات التعديل (e) إلى سلسلة JSON باستخدام JSON.stringify() وإرسالها كجزء من الجسم (payload) للطلب. تم أيضًا إضافة كتلة try-catch للتعامل مع الأخطاء المحتملة أثناء إرسال الطلب، وستتم طباعة أي خطأ إلى سجل الخطأ ويمكنك مراجعته لمعرفة تفاصيل الخطأ المحدث. وعليك باستبدال عنوان URL الصحيح لخادمك في السطر const url = "http://localhost:8000/edit"; بالعنوان الصحيح الذي يستخدمه السيرفر لديك. وتأكد من أن السيرفر يستجيب للطلبات POST وأن لديك الإعدادات الصحيحة للوصول المشترك (CORS) للسماح للطلبات الواردة من نطاق Google Apps Script. 1 اقتباس
0 Samer Alashqar نشر 2 يونيو 2023 الكاتب أرسل تقرير نشر 2 يونيو 2023 بتاريخ 6 دقائق مضت قال Mustafa Suleiman: الكود سليم، لكن كمحاولة استخدم الكود التالي: function onEdit(e) { const url = "http://localhost:8000/edit"; // استبدله بعنوان URL الصحيح لخادمك الشخصي const options = { method: "POST", headers: { "Content-Type": "application/json", }, payload: JSON.stringify(e), // إرسال بيانات التعديل كجزء من الجسم (payload) للطلب muteHttpExceptions: true, }; try { UrlFetchApp.fetch(url, options); } catch (error) { console.error("حدث خطأ أثناء إرسال الطلب:", error); } } قمت بإضافة خاصية "headers" لتعيين نوع المحتوى إلى "application/json"، كما قمت بتحويل بيانات التعديل (e) إلى سلسلة JSON باستخدام JSON.stringify() وإرسالها كجزء من الجسم (payload) للطلب. تم أيضًا إضافة كتلة try-catch للتعامل مع الأخطاء المحتملة أثناء إرسال الطلب، وستتم طباعة أي خطأ إلى سجل الخطأ ويمكنك مراجعته لمعرفة تفاصيل الخطأ المحدث. وعليك باستبدال عنوان URL الصحيح لخادمك في السطر const url = "http://localhost:8000/edit"; بالعنوان الصحيح الذي يستخدمه السيرفر لديك. وتأكد من أن السيرفر يستجيب للطلبات POST وأن لديك الإعدادات الصحيحة للوصول المشترك (CORS) للسماح للطلبات الواردة من نطاق Google Apps Script. كل شي لدي صحيح لكن مازلت لا اتلقى اي استجابة من ال APP script: full code server side: const express = require("express"); const app = express(); const mongoose = require("mongoose"); const { ObjectId } = require("mongodb"); const { urlencoded } = require("express"); const { google } = require("googleapis"); require("dotenv").config(); const User = require("./Models/user"); app.use(urlencoded({ limit: "50mb", extended: true })); app.use(express.json({ limit: "50mb", extended: true })); app.use((req, res, next) => { res.setHeader("Access-Control-Allow-Origin", "*"); res.header( "Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept" ); next(); }); app.post("/edit", async (req,res) => { console.log('Incoming request:', req); console.log("hi") } ) //db connection mongoose .connect(process.env.MONGODB_URL, { useNewUrlParser: true, useUnifiedTopology: true, }) .then(() => { console.log("Successfully connected to the database"); }) .catch((error) => { console.log("Could not connect to the database", error); process.exit(); }); require("./Router/userRoute")(app); const PORT = process.env.PORT || 8000; app.listen(PORT, () => { console.log(`Listening on port ${PORT}`); }); App script: function onEdit(e) { const url = "http://localhost:8000/edit"; // استبدله بعنوان URL الصحيح لخادمك الشخصي const options = { method: "POST", headers: { "Content-Type": "application/json", }, payload: JSON.stringify(e), // إرسال بيانات التعديل كجزء من الجسم (payload) للطلب muteHttpExceptions: true, }; try { UrlFetchApp.fetch(url, options); } catch (error) { console.error("حدث خطأ أثناء إرسال الطلب:", error); } } اقتباس
0 Samer Alashqar نشر 2 يونيو 2023 الكاتب أرسل تقرير نشر 2 يونيو 2023 بتاريخ 49 دقائق مضت قال Mustafa Suleiman: الكود سليم، لكن كمحاولة استخدم الكود التالي: function onEdit(e) { const url = "http://localhost:8000/edit"; // استبدله بعنوان URL الصحيح لخادمك الشخصي const options = { method: "POST", headers: { "Content-Type": "application/json", }, payload: JSON.stringify(e), // إرسال بيانات التعديل كجزء من الجسم (payload) للطلب muteHttpExceptions: true, }; try { UrlFetchApp.fetch(url, options); } catch (error) { console.error("حدث خطأ أثناء إرسال الطلب:", error); } } قمت بإضافة خاصية "headers" لتعيين نوع المحتوى إلى "application/json"، كما قمت بتحويل بيانات التعديل (e) إلى سلسلة JSON باستخدام JSON.stringify() وإرسالها كجزء من الجسم (payload) للطلب. تم أيضًا إضافة كتلة try-catch للتعامل مع الأخطاء المحتملة أثناء إرسال الطلب، وستتم طباعة أي خطأ إلى سجل الخطأ ويمكنك مراجعته لمعرفة تفاصيل الخطأ المحدث. وعليك باستبدال عنوان URL الصحيح لخادمك في السطر const url = "http://localhost:8000/edit"; بالعنوان الصحيح الذي يستخدمه السيرفر لديك. وتأكد من أن السيرفر يستجيب للطلبات POST وأن لديك الإعدادات الصحيحة للوصول المشترك (CORS) للسماح للطلبات الواردة من نطاق Google Apps Script. بعد عمل Run ل App Script يظهر هذا الخطاْ اقتباس
السؤال
Samer Alashqar
السلام عليكم..
لدي هذا الكود في App Script
الذي يقوم بعمل requist الى السيرفر الخاص بي:
لكنني لا اتلقى اي طلب على ال endpoint خاصتي.
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.