Как вызвать REST API из javascript

У меня есть url, который дает json данные...

Я хочу удалить этот URL из javascript, но я получаю эту ошибку:

символьная кодировка текстового документа не была объявлена. Документ будет отображаться с искаженным текстом в некоторых конфигурациях браузера, если документ содержит символы вне диапазона US-ASCII. Кодирование символа файла должно быть объявлено в протоколе передачи, или файл должен использовать знак порядка байтов в качестве сигнатуры кодирования

Код:

function a(){
$.getJSON(url,function(data) { alert(data);});
}

полный код:

<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" ></meta>
<script language="JavaScript" type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script>

function a(){
$.getJSON(url,function(data) { alert(data);});
}
</script>
</head>
<body>
<input type="text"/>
<input type="submit" value="search" onclick="a()"/>
</body>
</html>

Ответ 1

Ваш код кажется правильным.

Вы делаете fully qualified URL call?

Если вы выполняете полный URL-вызов, убедитесь, что вы выполните следующие действия.

  • Вы вызываете тот же домен (тот же сервер). Вы не можете сделать простой вызов JSON в другой домен.
  • Если вы хотите использовать междоменный вызов, вам придется использовать JSONp

Update: Это не работает, поскольку это вызов перекрестного домена.

Работайте для этого

JavaScript

Создать функцию

function getMyData(data) {
    alert(data);
    //Do the magic with your data
}

Серверная сторона

На сервере завершите ваши данные внутри синтаксиса функций

getMyData("Enter your data here");

JavaScript

Затем создайте тег script и добавьте ссылку на свою междоменную страницу

 <script type="text/javascript"
         src="cross ref url">
 </script>

Для справки: wikipedia

EDIT: Еще один вариант: создать прокси-сервер в вашем домене. т.е. создать страницу в своем домене, которая внутренне вызывает междоменную страницу и возвращает те же данные для вашего вызова Ajax.