Прежде всего: я искал свою ошибку и нашел полезные подсказки, но они не разрешили мою ошибку. В большинстве заданных вопросов проблема была неправильным ответом json.Ajax Request возвращает JSON, но порождает ошибку
Я делаю запрос Ajax для Google Maps с помощью службы CoffeeScript:
console.log 'widget ready - make request'
distrequest = $.ajax 'https://maps.googleapis.com/maps/api/distancematrix/json',
type: 'GET'
data:
origins: 'London',
destinations: 'Berlin',
language: 'de-DE',
key: 'ACTUALGOOGLEKEY'
#dataType: 'json' #tried to comment this out - same error
error: (jqXHR, textStatus, errorThrown) ->
console.log "Ajax error " + textStatus + " " + errorThrown
success: (data, textStatus, jqXHR) ->
console.log "success"
console.log data
Когда я проверяю консольный вывод, я вижу, что widget ready - make request
печатается, а затем: Ajax error error
Когда я проверяю свою сеть через FireFox инструменты разработчика я вижу следующее:
Method: GET
Status: 200
File: json?origins=...
Type: json
Response: {
"destination_addresses" : [ "London" ],
"origin_addresses" : [ "Berlin" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "24,7 km",
"value" : 24732
},
"duration" : {
"text" : "19 Minuten",
"value" : 1146
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
Прежде всего - я предполагаю, что JSON от Google ар я хорошо сформирован. Я не вижу никаких ошибок, я не получил ошибку синтаксического анализа, моя консольная консоль firefox распознала тип json и покажет мне (на мой взгляд) действительный объект json. Как-то происходит событие Ajax error, но я не знаю, почему, и errorThrown не помогает вообще.
Извините, если это дубликат - любые идеи? (я действительно изменил Origin and Destination, а также API Google API относительно конфиденциальности. Возвращенные значения - это правильная информация для моего запроса - карты Google не будут думать, что вы можете сделать это за 19 минут от Лондона до Берлина)
Редактировать : dataType: «текст» не работает. jqXHR.responseText пустой в методе ошибки
edit2: Я добавил следующий код в моей функции ошибки:
console.debug(jqXHR.responseText)
console.log "Response Headers "+jqXHR.getAllResponseHeaders()
console.log "Status "+jqXHR.status
console.log "Status Text "+jqXHR.statusText
, который дает мне error
, его статуса пустой заголовок и responseText, а также код состояния 0
Относительно этого ответа https://stackoverflow.com/a/14507670/5119359 это может быть связанная с CORS вещь? Но мог ли я получить объект JSON, чем в моей сетевой консоли разработчика firefox?
Попытка: «console.debug (jqXHR.responseText);» на событие «ошибка» –
@OfirBaruch это дает мне пустую строку, поэтому, очевидно, нет ответаText –