История изменений
Исправление javascript, (текущая версия) :
а их библиотека почему работает?
Их библиотека (плагин для jQuery) не посылает ajax запросы. Она использует jsonp-запросы.
JSONP - это когда ты в get запросе передаешь дополнительный параметр callback, с названием функции определенной на твоем сайте. А их сервер отдает в ответ не голый json, а javascript-код - json завернутый в вызов этой функции.
То есть ответ будет не {"data":123}
а fn({data: 123})
Можешь посмотреть - на свой же запрос, если откроешь по ссылке https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=%D0%BA%D0%B8%D1%80&_=1633499111351&callback=yourSuperFunction
Ну и в итоге, ты просто посылаешь такие запросы не фетчем, а динамическим встраиванием <script>
в свою страницу.
let src = 'https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=%D0%BA%D0%B8%D1%80&_=1633499111351&callback=cb'
function cb(data){
console.dir(data)
}
document.body.append(
Object.assign(
document.createElement('script'), { src }
)
)
Исправление javascript, :
а их библиотека почему работает?
Их библиотека (плагин для jQuery) не посылает ajax запросы. Она использует jsonp-запросы.
JSONP - это когда ты в get запросе передаешь дополнительный параметр callback, с названием функции определенной на твоем сайте. А их сервер отдает в ответ не голый json, а javascript-код - json завернутый в вызов этой функции.
То есть ответ будет не {"data":123}
а fn({data: 123})
Можешь посмотреть - на свой же запрос, если откроешь по ссылке https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=%D0%BA%D0%B8%D1%80&_=1633499111351&callback=yourSuperFunction
Ну и в итоге, ты просто посылаешь такие запросы не фетчем, а динамическим встраиванием <script>
в свою страницу.
let src = 'https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=%D0%BA%D0%B8%D1%80&_=1633499111351&callback=cb'
function cb(data){
console.dir(data)
}
document.body.append(
Object.assign(
document.createElement('script'), { src }
)
)
Исправление javascript, :
а их библиотека почему работает?
Их библиотека (плагин для jQuery) не посылает ajax запросы. Она использует jsonp-запросы.
JSONP - это когда ты в get запросе передаешь дополнительный параметр callback, с названием функции определенной на твоем сайте. А их сервер отдает в ответ не голый json, а javascript-код - json завернутый в вызов этой функции. То есть ответ будет не {"data":123}
а fn({data: 123})
Можешь посмотреть - на свой же запрос, если откроешь по ссылке https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=%D0%BA%D0%B8%D1%80&_=1633499111351&callback=yourSuperFunction
Ну и в итоге, ты просто посылаешь такие запросы не фетчем, а динамическим встраиванием <script>
в свою страницу.
let src = 'https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=%D0%BA%D0%B8%D1%80&_=1633499111351&callback=cb'
function cb(data){
console.dir(data)
}
document.body.append(
Object.assign(
document.createElement('script'), { src }
)
)
Исправление javascript, :
а их библиотека почему работает?
Их библиотека (плагин для jQuery) не посылает ajax запросы. Она использует jsonp-запросы.
JSONP - это когда ты в get запросе передаешь дополнительный параметр callback, с названием функции определенной на твоем сайте. А их сервер отдает в ответ не голый json, а javascript-код - json завернутый в вызов этой функции. То есть ответ будет не {«data»:123} а fn({data: 123})
Можешь посмотреть - на свой же запрос, если откроешь по ссылке https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=%D0%BA%D0%B8%D1%80&_=1633499111351&callback=yourSuperFunction
Ну и в итоге, ты просто посылаешь такие запросы не фетчем, а динамическим встраиванием <script>
в свою страницу.
let src = 'https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=%D0%BA%D0%B8%D1%80&_=1633499111351&callback=cb'
function cb(data){
console.dir(data)
}
document.body.append(
Object.assign(
document.createElement('script'), { src }
)
)
Исправление javascript, :
а их библиотека почему работает?
Их библиотека (плагин для jQuery) не посылает ajax запросы. Она использует jsonp-запросы.
JSONP - это когда ты в get запросе передаешь дополнительный параметр callback, с названием функции определенной на твоем сайте. А их сервер отдает в ответ не голый json, а javascript-код - json завернутый в вызов этой функции. То есть ответ будет не {«data»:123} а fn({data: 123})
Можешь посмотреть - на свой же запрос, если откроешь по ссылке https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=%D0%BA%D0%B8%D1%80&_=1633499111351&callback=yourSuperFunction
Ну и в итоге, ты просто посылаешь такие запросы не фетчем, а динамическим встраиванием <script>
в свою страницу.
let src = 'https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=%D0%BA%D0%B8%D1%80&_=1633499111351&callback=cb'
function cb(data){
console.dir(data)
}
document.body.append(
Object.assign(
document.createElement('script'), { src }
)
)```
Исправление javascript, :
а их библиотека почему работает?
Их библиотека (плагин для jQuery) не посылает ajax запросы. Она использует jsonp-запросы.
JSONP - это когда ты в get запросе передаешь дополнительный параметр callback, с названием функции определенной на твоем сайте. А их сервер отдает в ответ не голый json, а javascript-код - json завернутый в вызов этой функции. То есть ответ будет не {«data»:123} а fn({data: 123})
Можешь посмотреть - на свой же запрос, если откроешь по ссылке https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=%D0%BA%D0%B8%D1%80&_=1633499111351&callback=yourSuperFunction
Ну и в итоге, ты просто посылаешь такие запросы не фетчем, а динамическим встраиванием в свою страницу.
let src = 'https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=%D0%BA%D0%B8%D1%80&_=1633499111351&callback=cb'
function cb(data){
console.dir(data)
}
document.body.append(
Object.assign(
document.createElement('script'), { src }
)
)
Исходная версия javascript, :
а их библиотека почему работает?
Их библиотека (плагин для jQuery) не посылает ajax запросы. Она использует jsonp-запросы.
JSONP - это когда ты в get запросе передаешь дополнительный параметр callback, с названием функции определенной на твоем сайте. А их сервер отдает в ответ не голый json - а javascript-код, завернутый в вызов этой функции. То есть ответ будет не {«data»:123} а fn({data: 123})
Можешь посмотреть - на свой же запрос, если откроешь по ссылке https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=%D0%BA%D0%B8%D1%80&_=1633499111351&callback=yourSuperFunction
Ну и в итоге, ты просто посылаешь такие запросы не фетчем, а динамическим встраиванием в свою страницу.
let src = 'https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=%D0%BA%D0%B8%D1%80&_=1633499111351&callback=cb'
function cb(data){
console.dir(data)
}
document.body.append(
Object.assign(
document.createElement('script'), { src }
)
)