angularjs fire обещают и перенаправляют на внешний URL, прежде чем он разрешит [дублировать]

Строка ошибки «Ссылка на объект, не установленная на экземпляр объекта.» указывает, что вы не назначили экземпляр объекта объектной ссылке, и все же вы получаете доступ к свойствам / методам этого объекта.

например: скажем, у вас есть класс под названием myClass и он содержит одно свойство prop1.

public Class myClass
{
   public int prop1 {get;set;}
}

Теперь вы получаете доступ к этому prop1 в каком-то другом классе, как показано ниже:

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref.prop1 = 1;  //This line throws error
     }
}

выше строки выдает ошибку, потому что ссылка класса myClass объявлена, но не создана, или экземпляр объекта не назначается referecne этого класса.

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

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref = new myClass();
        ref.prop1 = 1;  
     }
}
6
задан Ian Dunn 9 June 2011 в 22:43
поделиться

3 ответа

jQuery не обеспечивает обратный вызов для того, что вы ищете. Вот доступные состояния готовности:

Value   State   Description
0   UNSENT  open()has not been called yet.
1   OPENED  send()has not been called yet.
2   HEADERS_RECEIVED    send() has been called, and headers and status are available.
3   LOADING Downloading; responseText holds partial data.
4   DONE    The operation is complete.

Вы ищете readistate 2, так как это самое раннее, что вы знаете о том, что сервер получил сообщение.

Это должно вывести вас из земли:

var xhr = new XMLHttpRequest();
xhr.open("POST", clicked);
xhr.onreadystatechange = function() {
    if (xhr.readyState >= 2) window.location = clicked;
};
xhr.send($('#track-click-post-url').attr('value'));

https://developer.mozilla.org/en/XMLHttpRequest для дальнейшего чтения.

7
ответ дан Robert 28 August 2018 в 08:53
поделиться

Почему вы публикуете Javascript, когда собираетесь загружать страницу любым способом?

Просто обновите db ссылкой, нажатой на новой странице.

Возможно, используя URL-адрес реферера, чтобы отслеживать, на какой странице был клик.

Или какое-то другое решение, чтобы попасть на страницу, на которой был щелчок (например, url param) или каким-либо другим способом.

0
ответ дан PeeHaa 28 August 2018 в 08:53
поделиться

Когда вы покидаете страницу, все ожидающие запросы убиваются, а новая страница загружается. Первый способ - правильный путь. Да, будет задержка при нажатии ссылки, потому что запрос POST запущен.

Вы не можете запустить запрос в фоновом режиме страницы, если пользователь не находится на этой странице .

Возможно, вы можете сохранить URL-адрес ссылки в файле cookie и поместить его в БД при загрузке следующей страницы.

0
ответ дан Rocket Hazmat 28 August 2018 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: