Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 24.08.2017, 11:34
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Либо так...

chrome.runtime.onMessage.addListener(
	function(message, sender, sendResponse) {
		var fnc=function(data){
			sendResponse('работает аякс');
		};
		$.ajax({
			url: "http://some.site"
			,type: "POST"
			,data: message
			,success: fnc
		});
		sendResponse('просто');
	}
);

Последний раз редактировалось ksa, 24.08.2017 в 11:40.
Ответить с цитированием
  #12 (permalink)  
Старый 24.08.2017, 12:50
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

paka, добавьте опцию complete и смотрите статус запроса.
Вообще в консоли все должно быть написано.
Вероятно запрос фейлится.
Ответить с цитированием
  #13 (permalink)  
Старый 24.08.2017, 13:18
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Nexus
Вероятно запрос фейлится.
Это легко проверить добавлением
alert('Test');

в самое начало колбек-функции.
Ответить с цитированием
  #14 (permalink)  
Старый 24.08.2017, 14:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от paka Посмотреть сообщение
У меня есть код (расширение для хрома), который я не понимаю из-за особенностей js

chrome.runtime.onMessage.addListener(
  function(message, sender, sendResponse)
  {
    $.ajax({
      url: "http://some.site"
      ,type: "POST"
      ,data: message
      ,success: function(data)
      {
        sendResponse('работает аякс');
      }
    });
    
    sendResponse('просто');
  }
);


Почему функция sendResponse('работает аякс'); не срабатывает?
С учетом того, что 14-я строка у тебя работает - то и все остальное должно срабатывать...
function message(Txt) {
	alert(Txt)
};
function test(Fnc){
	setTimeout(function(){
		Fnc('Ok');
	},1000);
	Fnc('Start');
};
test(message);
Ответить с цитированием
  #15 (permalink)  
Старый 24.08.2017, 17:00
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Вроде бы для того, чтобы можно было вызывать sendResponse из асинхронного кода, надо в функции, переданной в chrome.runtime.onMessage.addListener, вернуть true. Чтобы хром знал, что надо дожидаться этого вызова, а не "обрубить все концы" сразу.

См. документацию.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операционная Система на JS Icat Общие вопросы Javascript 3 17.04.2018 22:54
Не получается вставить код js в HTML garmoni Элементы интерфейса 3 05.09.2013 05:56
Как рандомно запустить js внутри другого js? fonzo24 Общие вопросы Javascript 3 21.11.2011 13:31
JS внутри AJAX pagal AJAX и COMET 8 11.10.2011 11:19
Как получит ссылку на элемент внутри которого запустили JS код? aRpi Events/DOM/Window 20 02.10.2011 13:36