Для обработки JSON тела POST'ed через AJAX в Django - PullRequest
0 голосов
/ 22 марта 2019
$.ajax({
         'url' : "http://localhost:7090/"+ 'manageApp',
         'type': 'POST',
          'dataType' : 'jsonp',
          "headers": {
            "content-type": "application/json"
          },
         "processData": false,
         "data": "{\n\t\"symbolicName\" :\"fakeapp\",\n\t\"action\" : \"getInfo\"\n}",
         "async": true,
         'crossDomain':true,
         'success': function() {  callback(false); },
         'error': function() {  callback(false); }
    });
}  

Это код в файле js внутри фреймворка django. Я хочу сделать почтовый запрос к приложению, работающему локально, которое анализирует тело запроса JSON и возвращает ответ JSON.

manageApp(payload) 
    JsonObject body = new JsonParser().parse(payload).getAsJsonObject(); 

Но полезная нагрузка, которую я получаю:

callback=jQuery111109410441669038576_1553268399194&{%22symbolicName%22:%22fakeapp%22,%22action%22:%22getInfo%22}&_=1553268399195

, который синтаксический анализатор gson не может проанализировать и, таким образом, дает jsonmalformed исключение. Я хочу, чтобы полезная нагрузка была,

{
    "symbolicName" :"fakeapp",
    "action" : "getInfo"
}   

Приложение правильно обрабатывает ответ JSON, когда я выполняю пост-запрос с использованием POSTMAN.

P.S Я использую NANOHttpd для получения тела JSON из запроса,

Map<String, String> requestParams = new HashMap<>();
        try {
            session.parseBody(requestParams);
        } catch (IOException ioe) {
        } catch (ResponseException re) {

        }
        pluginManagerService.manageApp(session.getQueryParameterString()); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...