Строка ошибки «Ссылка на объект, не установленная на экземпляр объекта.» указывает, что вы не назначили экземпляр объекта объектной ссылке, и все же вы получаете доступ к свойствам / методам этого объекта.
например: скажем, у вас есть класс под названием 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;
}
}
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 для дальнейшего чтения.
Почему вы публикуете Javascript, когда собираетесь загружать страницу любым способом?
Просто обновите db ссылкой, нажатой на новой странице.
Возможно, используя URL-адрес реферера, чтобы отслеживать, на какой странице был клик.
Или какое-то другое решение, чтобы попасть на страницу, на которой был щелчок (например, url param) или каким-либо другим способом.
Когда вы покидаете страницу, все ожидающие запросы убиваются, а новая страница загружается. Первый способ - правильный путь. Да, будет задержка при нажатии ссылки, потому что запрос POST запущен.
Вы не можете запустить запрос в фоновом режиме страницы, если пользователь не находится на этой странице .
Возможно, вы можете сохранить URL-адрес ссылки в файле cookie и поместить его в БД при загрузке следующей страницы.