2013-03-27 4 views
2

Я работаю над скриптом, который отлично работает на моей локальной машине, но когда я загружаю его на свой веб-сервер, мой запрос $ .getJSON не работает.

function loadData(fileName) { 
    return $.getJSON(fileName + ".json"); 
} 

var data; 

var myFile = "Data"; 

loadData(myFile).done(function (data1) { 
    if (data1 && data1.info) { 
     data = data1; 
     $.each(data1.info[0], function (key, value) { 
      alert(value); 
     }); 
    } 
}); 

Я выхваченное много моего внутреннего кода, который в основном только принимает результаты и помещает их в HTML элементов. url, который я запрашиваю, находится на удаленном сервере, но он работает, когда я запускаю эту страницу html с моего жесткого диска. когда я загружаю его на свой веб-сервер, он не получает поп-музыки, это похоже на то, что $ .getJSON даже не работает.

Я загрузил его в Apache в качестве папки

Folder 
| 
|-->Index.html 
| 
|-->Data.json 
+1

Проверьте консоль, чтобы увидеть, были ли ошибки –

+0

Ошибка: не удалось выполнить синтаксический анализ привязок. Сообщение: ReferenceError: информация не определена; Значение привязки: foreach: info http://ajax.aspnetcdn.com/ajax/knockout/knockout-2.2.1.js Строка 56 – Okky

+0

Это ошибка, которую я получаю. Но если я запустил его с жесткого диска. Его рабочий тон – Okky

ответ

2

Не полагайтесь на методе $.getJSON(), используйте $.ajax() вместо: вы будете иметь больше контроля над заголовками запроса.

Попробуйте со следующими параметрами, а также интегрировать вызов функции с параметрами, характерными для вашего приложения:

$.ajax({ 
    type: "POST", 
    url: "some-url.json", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json" 
}); 

Полная документация метода $.ajax() можно найти here.

1

У меня была такая же проблема, но она работает на удаленном сервере, а не на локальном устройстве разработки (после того, как я импортировал проект с удаленного сервера на новое устройство разработки).

Наконец-то я обнаружил, что мой PHP-скрипт выдает уведомление в зависимости от ключа $ _Session, который не был установлен. Удаленный сервер , выделенный, был настроен так, чтобы не выдавать никаких уведомлений о моем локальном сервере. В результате получилось, что на моем локальном устройстве ответ не мог быть проанализирован как JSON. После того, как я положил команду isset() на $_SESSION, запрос JSON был действительно JSON и jQuery проанализировали его правильно.

Просто докажите, что ответит ваш сервер. Вы можете сделать это с помощью веб-разработчика -> веб-консоли в Firefox. Просто щелкните правой кнопкой мыши по URL-адресу, который появляется после отправки вашего запроса AJAX, и отметьте поле для записи вашего запроса и его ответа. Вы можете проверить URL-адрес после повторного вызова своего AJAX-вызова, а в нижней части окна инспектора вы найдете его. Вы можете непосредственно увидеть, что ответ, и если он в правильном формате.

Смежные вопросы