Vue js /// POST

لدي مشكلة في ارسال من vue الى flask
كيف يتم استخدام POST

sendData() {
            
            const data = this.user;

            return this.$http.post('http://127.0.0.1:5000/users', data )
                    .then(this.extractData)
                    .catch(this.handleError);
        
        }
    }
2 Likes

@YasserAlnajjar

2 Likes
sendData() {
            
            const data = this.user;
           return this.$http({method: 'POST', url: 'http://localhost:5000/users',
           headers: {
           "Access-Control-Allow-Origin":"http://localhost:5000/users",
           "Access-Control-Allow-Methods": "POST" },
           content: JSON.stringify({
                name : data.name,
                age : data.age})})
                    .then(response => {
                        var result = response.content.toJSON();
                        /* eslint-disable no-console */
                        console.log(result);
                        /* eslint-enable no-console */
                        }, error => {
                        /* eslint-disable no-console */
                        console.error(error);
                        
                        /* eslint-enable no-console */
                        
            });
                    
        
        }
    }

هذه رسالة الخطا

Access to XMLHttpRequest at 'http://localhost:5000/users' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
2 Likes

مرحباً صهيب

من رسالة الخطأ، يبدو أن المشكلة متعلقة مجدداً بالـ CORS

جرب استعمال هذه الاضافة للفلاسك:

https://flask-cors.readthedocs.io/en/latest/index.html#resource-specific-cors

ولا تنسى تحديد origin=* والتي تعني اسمح لجميع المواقع بإصدار الطلبات requests إلى تطبيق الفلاسك (استعمل هذا الخيار فقط أثناء التطوير وليس أثناء الإطلاق).

1 Like

في عملية get تخطيت مشكلة ال cors
لكن الان تواجهني في ال post
وايضا flask يستقبل الطلب على أنه options ويعيد 200

2 Likes

بالنسبة لطريقة ارسال الطلب بهذا الشكل:

let userData = {
  username: this.username,
  password: this.password
  }
this.$http.post('/login', userData)
  .then(response => {
    // Success
    console.log(response.data)
  }, error => {
    // Error
    console.log(error.data)
  })

الاوبجكت userData يحتوي على البيانات التي ستأخذها من الفورم

وبعدها في حالة النجاح نستعمل response => {} وهي arrow function الجديدة في ES6، نفسها لو كتبنا function(response) {}

هممم، في الواقع مشاكل CORS تظهر عند عمل POST PUT DELETE، غالباً في GET هي لا تظهر :smile:

1 Like

المشكلة ظهرت في لبداية عندما ارسلت بيانات من flask الى vue وقمت بمعالجتها
لكن عندما اردت ان ارسل ابيبانات من vue الى flask ظهرت المشكلة مجددا

1 Like

نعم لانها ما زالت غير محلولة، جربت cors package ؟

1 Like

لقد نجحت
فقط أضفت
CORS(app)
منذ يومين انا أبحث عن الحل :smile::smile:

1 Like

اريد أن اسألك عن ما هو الفرق بين استخدام axios و VueResource ؟؟؟؟

1 Like

لا يوجد فرق كبير

فقط axios صارت هي الطريقة الرسمية ومن المحتمل ان تصير vue-resource من الماضي

1 Like

هذا يعني لاتعلم axios كونها المتداولة :slightly_smiling_face::slightly_smiling_face:

1 Like

نعم :slight_smile:

مشروع بسيط طبقت فيه الاساسيات التي تعلمتها

3 Likes

ما شاء الله يا صهيب

ألقيت نظرة على المشروع ويبدو أنك صرت تتحكم في كلاً من flask و vue بشكل جيد :sunglasses:

1 Like

شكرأ لك هذا بفضل ارشاداتكم :kissing_heart::kissing_heart: :rose::rose:

1 Like