Я обслуживаю веб-приложение, сделанное с флягой. Я просто добавил функцию, чтобы сделать запрос геокодирования на google с помощью ajax. Таким образом, нажатие кнопки вызывает эту функцию в файле loc_gm.js:Использование колбы и ajax
$(function() {
$('#geo_google').click(function() {
$.ajax({
url: 'geo_gm',
data: $('form').serialize(),
type: 'POST',
success: function(response) {
response = JSON.parse(response)
$('#Lat').val(response['lat']);
$('#Long').val(response['lng']);
},
error: function(error) {
console.log(error);
}
});
});
});
И это код в view.py:
@app.route('/geo_gm', methods=('GET', 'POST'))
def geo_gm():
calle1 = request.form['calle1']
calle2 = request.form['calle2']
altura = request.form['altura']
if calle1 and calle2:
address = '{}+y+{},+CABA,+AR'.format(calle1, calle2)
elif calle1 and altura:
address = '{}+{},+CABA,+AR'.format(calle1, altura)
url = 'https://maps.googleapis.com/maps/api/geocode/json?address={}&key={}'.format(address, GOOGLE_KEY)
response = requests.get(url)
result = response.json()
return json.dumps(result['results'][0]['geometry']['location'])
Это работает в моей локальной машине (я получить координаты, которые я хочу от Google), но когда я загрузить его на сервер (Digital Ocean) Я получаю эту ошибку в консоли JavaScript:
POST http://192.xx.xx.xxx/geo_gm 404 (НЕ НАЙДЕНО)
Будучи, что IP-адрес тот, на котором находится мое приложение.
Я знаю, что это глупая ошибка, которую я делаю, но я не могу понять это.
Спасибо!
'url: '/ geo_gm',' or '{{url_for ('geo_gm')}}' – Busturdust
Я пробовал оба. Первый из них тот же: работает локально, но не на сервере. Последний из них даже не работает локально ... – Ivan
http://flask.pocoo.org/docs/0.10/patterns/jquery/ – Busturdust