I try to send jQuery AJAX request to my flask server :
$.ajax({
            type: 'GET',
            url: '/get',
            dataType: "json",
            contentType:"application/json",
            data: JSON.stringify({ subject : "gpu",
                    filter : {
                        ids: [2, 3]
                        }
                    }),
            success: function (data) {
                console.debug(data);
            }
        });
And then I wait for a response from the server. Server part looks like this:
@api.route('/get', methods=['GET'])
def get():
    response = None
    try:
        data = request.get_json()
        response = do_some_magic(data)
    except Exception as e:
        respond = {'state': 'error', 'data': e.message}
    finally:
        return json.dumps(respond)
So, this combination doesn't work. request has only args field = ImmutableMultiDict([('{"subject":"gpu","filter":{"ids":[2,3]}}', u'')]) and json field = None.
But when in ajax request I set type: 'GET' and in flask get method methods=['GET'], server starts to handle requests correctly.
So, it would not be a real issue, but then I tried to send a GET request with postman utility. It's request:
GET /get HTTP/1.1
Host: localhost:5000
Content-Type: application/json
cache-control: no-cache
Postman-Token: 1d94d81c-7d93-4cf6-865a-b8e3e28278c1
{
    "subject": "gpu",
    "filter": {
        "ids": [
            2,
            3
        ]
    }
}------WebKitFormBoundary7MA4YWxkTrZu0gW--
And flask code worked with methods=['GET']. So the question is, what can cause such behaviour? 
 
    