2015-01-22 3 views
0

Внутри моей HTML страницы У меня естьВозникли проблемы с JQuery пост и колба

<button id = "mybutton" class = "btn" type="submit" >Go</button> 

Мои JS на этой странице

$("#mybutton").click(function(){ 
    $.post('{{ url_for("fromserver") }}', 
      {name: "Fred"}, 
      function(data){ alert(data); }, 
      "json" 
     ); 
}); 

Вид на "fromserver" является

@app.route('/fromserver', methods=['GET', 'POST']) 
def fromserver(): 
    print request 
    return "astring" 

Как получить доступ к данным name из представления?

ответ

0

Некоторые примеры кода, которые я использую.

питон

@api.route('/data_management/search/Booking/', methods=['POST']) 
@permission_required(Permission.VIEW_DATA) 
def get_management_search_booking_string(): 

    json = request.get_json(silent=False, force=True) 
    q = ''.join(('%',json['q'],'%')) 
    page_limit = try_parse_int(json['page_limit']) 
    page = try_parse_int(json['page']) 

Javascript

function GetBookings(term, pageLimit, page) { 
    term = typeof term !== 'undefined' ? term : ""; 
    pageLimit = typeof pageLimit !== 'undefined' ? pageLimit : 999999; 
    page = typeof page !== 'undefined' ? page : 1; 
    var query = { q: term, page_limit: pageLimit, page: page }; 
    var result = [{id: "0", text: "-- Not set --"}]; 
    $.ajax({ 
    url: '/data_management/search/Booking/', 
    type: 'POST', 
    data: JSON.stringify(query), 
    dataType: 'JSON', 
    async: false, 
    success: function(data) { 
     for(var i = 0; i < data.bookings.length; i++) { 
     result.push({id: data.bookings[i].id, text: data.bookings[i].name}); 
     } 
    } 
    }); 
    return result; 
} 
0

мне удалось исправить это с помощью $.ajax() вместо $.post() и установки contentType:

$("#mybutton").click(function(){ 
    $.ajax({ 
     type: 'POST', 
     url: '{{ url_for("fromserver") }}', 
     data: JSON.stringify({name:'Fred'}), 
     dataType: 'json', 
     contentType: 'application/json; charset=utf-8' 
    }) 
}); 

Тогда на мой взгляд

x = request.get_json() 
print x['name'] 

дал мне желаемый результат. По какой-то причине x.name не работал.

Смежные вопросы