Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/59: Рейтинг темы: голосов - 59, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 40
1

Запрос ajax на локальный файл

19.06.2012, 20:31. Показов 10812. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день,

Подскажите, пожалуйста, почему данный код может не работать.

Javascript
1
2
3
4
5
6
7
8
9
<script>
    var request = $.ajax({
        url: "test.js",
        dataType: 'json',
        data: data,
        success: function () {alert("success");},
        error: function () {alert("error");}
    });
</script>
Файл test.js существует, он находится в той же папке, что и html, в который вставлен вышеприведенный код. Библиотека jquery подключена, последняя версия. Скрипт вставлен в body.

При запуске я не вижу ни сообщения об ошике, ни успеха.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2012, 20:31
Ответы с готовыми решениями:

Локальный запрос ajax
Вот такой код я имею. Локально (тупо из папки на рабочем столе) вызывается этот скрипт и так же из...

AJAX запрос к файлу, который сам делает AJAX запрос
Прошу прощение за название темы, но я не знаю как это коротко описать... Здравствуйте. На...

Определить AJAX библиотеку или отследить AJAX запрос любым методом
Требуется определить какая библиотека используется на сайте для создания AJAX запросов....

Ajax запрос в div с уже 'прилетевшим' ajax'om
Добрый день, ребят... Не нашёл отдельного раздела по ajax, а разобраться очч надо, т.к.в JS полный...

7
37 / 41 / 3
Регистрация: 10.10.2010
Сообщений: 364
19.06.2012, 21:49 2
ты присваиваешь запрос переменной
0
0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 40
20.06.2012, 13:03  [ТС] 3
Цитата Сообщение от tabber Посмотреть сообщение
ты присваиваешь запрос переменной
Я нашёл похожий пример здесь: http://api.jquery.com/jQuery.ajax/

Полностью там такой код:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var menuId = $("ul.nav").first().attr("id");
var request = $.ajax({
  url: "script.php",
  type: "POST",
  data: {id : menuId},
  dataType: "html"
});
 
request.done(function(msg) {
  $("#log").html( msg );
});
 
request.fail(function(jqXHR, textStatus) {
  alert( "Request failed: " + textStatus );
});
В нём тоже ошибка? А в моём?

Добавлено через 46 минут
По всей видимости невозможность заставить работать данный код связана с same origin policy. Если запускать данный файл из папки, где он находится, то он не будет работать, а если запускать с локального сервера, то он работает.

Правильно я понимаю? Кто сталкивался с таким?

Другими словами:

file:///D:/workspace/testWebProjetAjax/WebContent/index.html - не работает

http://localhost:8080/testWebProjetAjax/index.html - работает
0
Рождён удивлять
53 / 56 / 9
Регистрация: 08.08.2011
Сообщений: 438
20.06.2012, 13:36 4
Ты пытаешься в файл с Java скриптом передать запрос в формате json где логика???

Javascript
1
2
3
4
5
6
7
8
9
<script>
    var request = $.ajax({
        url: "test.js",
        dataType: 'json',
        data: data,
        success: function () {alert("success");},
        error: function () {alert("error");}
    });
</script>
А так же переменные передаються таким методом data: {id : menuId, id2: mainId}, а не data:data
0
0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 40
20.06.2012, 13:40  [ТС] 5
Привет!

Расширение файла не влияет на передачу. Хоть txt поставь.
Способ, что у меня тоже работает.
0
37 / 41 / 3
Регистрация: 10.10.2010
Сообщений: 364
20.06.2012, 18:24 6
Javascript
1
2
3
4
5
6
7
request.done(function(msg) {
  $("#log").html( msg );
});
 
request.fail(function(jqXHR, textStatus) {
  alert( "Request failed: " + textStatus );
});
сравни со своим
если ты попытался блеснуть краткостью... я повторюсь ты присвоил вызов переменной, значит что? если хочешь, что бы твой код работал убери переменную. теория в помощь
0
0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 40
20.06.2012, 18:28  [ТС] 7
tabber, спасибо за ответ!

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

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
    $.ajax({
        url: 'json/reponseHDP.json',
        dataType: 'json',
        async: false,
        success: function(data) {
        $.each(data.items, function(i,item){
            
                      //обрабатываем данные
 
        });
    }
    });
}
0
Vizer
02.07.2012, 11:41 8
я повторюсь ты присвоил вызов переменной, значит что?
Значит в переменную вернулся объект jqXMLHttpRequest, и фактически это ни на что не повлияло.
Проблема изначально состояла в том, что XMLHttpRequest не обрабатывает запросы по протоколу, отличному от http.
02.07.2012, 11:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2012, 11:41
Помогаю со студенческими работами здесь

Как переадресовать запрос на локальный хост?
Допустим, браузер открывает ссылку типа http://site.ru. По умолчанию используется порт 80 сервера,...

Запрос на локальный сервер через usb
Возможно ли сделать такое? На локальном сервере развернут сервис, мобильно приложение при условии...

Как отправить запрос на локальный сервер?
Всем привет! Подскажите, кто в курсе, как отправить POST запрос на локальный сервер. Задумка такая:...

JQuery, Ajax и LIVE!? Возможно ли повесить ajax запрос на live?
все делаю правильно, но у меня даже onSubmit alert(&quot;ok!&quot;); выводить не хочет? код примерно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru