Кажется, что JSON2JSONP не поддерживает символы, отличные от ASCII. http://json2jsonp.com/?url=http%3A%2F%2Fapi.mymemory.translated.net%2Fget%3Fq%3DL%25C3%25B6sung%26langpair%3Dde%257Cen&callback=cbfunc
должен возвращать правильный JSONP, но на самом деле происходит ошибка, потому что JSON2JSONP отправляет неверный запрос HTTP GET с GET /get?q=L\xc3\xb6sung&langpair=de|en HTTP/1.1
, а не GET /get?q=L%C3%B6sung&langpair=de%7Cen HTTP/1.1
.
Если вы можете использовать XMLHttpRequest и JSON.parse, вам больше не нужен JSONP.
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
cbfunc(JSON.parse(xhr.responseText));
}
};
xhr.open("GET", "http://api.mymemory.translated.net/get?q=L%C3%B6sung&langpair=de%7Cen");
xhr.send();
Спасибо! Будет ли эта работа также междоменной? – Argentoratum
Кросс-доменные запросы, использующие этот код, работают в Firefox 3.5+, Chrome 3+, Safari 4+ и IE 10+. – anqooqie