superrcoop / photogram

instagram remake with Vue.js and flask python
MIT License
1 stars 1 forks source link

flask views not receiving request.body json object for fetching post by id #44

Open superrcoop opened 6 years ago

superrcoop commented 6 years ago

in dashboard.js :

var payload = {
          post_id: self.id,
           username:self.username
       };
           var data = new FormData();
            data.append( "json", JSON.stringify( payload ) );
            console.log(payload,data);
                fetch("/api/posts/delete", { 
                    method: 'POST',
                    body:payload,
                    headers: {
                            'Authorization': 'Bearer ' + localStorage.getItem('jwt_token'),
                            'X-CSRFToken': token
                        },
                    credentials: 'same-origin'            
                    })

and in view.py :

@app.route('/api/posts/delete', methods = ['GET','POST'])
@login_required
def delete_post():
    error=None
    if request.method =='POST':
        """
        data=request.data
        post=Posts.query.filter_by(id=data.id).first();
        if post:
            db.session.delete(post)
            db.session.commit()
            return jsonify({'messages':'Post sucessfully deleted'})
        """
        return jsonify({'messages':'Post received'})
    else:
        return jsonify({'errors':error})
superrcoop commented 6 years ago

self.id: undefined

superrcoop commented 6 years ago

probably should change the http request method for delete api route

superrcoop commented 6 years ago

Use request.get_data() to get the raw data, regardless of content type. The data is cached and you can subsequently access request.data, request.json, request.form at will.

src: https://stackoverflow.com/questions/10999990/get-raw-post-body-in-python-flask-regardless-of-content-type-header/11000778