Это означает, что указанная переменная не указана ни на что. Я мог бы сгенерировать это так:
SqlConnection connection = null;
connection.Open();
Это вызовет ошибку, потому что, пока я объявил переменную «connection
», она не указала ни на что. Когда я пытаюсь вызвать член «Open
», для его устранения нет ссылки, и он будет вызывать ошибку.
Чтобы избежать этой ошибки:
object == null
. Инструмент Resharper JetBrains определит каждое место в вашем коде, которое имеет возможность ошибки нулевой ссылки, позволяя вам ввести нулевую проверку. Эта ошибка является источником ошибок номер один, IMHO.
Более простой способ - предоставить свойство data
как объект:
$.ajax({
url: 'mysite/save',
type: 'POST',
data: { param0:'hi there!', param1:'blah blah', param2:'we get it' }
});
В противном случае да, вы должны закодировать его, поскольку что-либо с &
, например, будет вещи очень быстро. Предоставление его в качестве объекта является гораздо более простым или более простым, хотя, на мой взгляд, в любом случае.
Вы также можете выделить его и получить свойства из других мест внутри, например:
$.ajax({
url: 'mysite/save',
type: 'POST',
data: {
param0: $('#textbox0').val(),
param1: $('#textbox1').val(),
param2: $('#textbox2').val()
}
});
Редактировать: Если вам интересно, как jQuery делает эту кодировку внутри себя, она использует $.param()
(которую вы также можете использовать напрямую) для кодирования объекта к строке, названной здесь здесь , и кишки здесь .
это поможет вам
function CallPageSync(url, data) {
var response;
$.ajax({
async: false,
url: url,
data: data,
timeout: 4000,
success: function(result) {
response = result;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
response = "err--" + XMLHttpRequest.status + " -- " + XMLHttpRequest.statusText;
}
});
return response;
}
, и вы можете называть его как
response = CallPageSync(checkPageURL, "un=" + username);
data
, а не как использовать jQuery.ajax
.
– Vivin Paliath
17 June 2010 в 23:22
Если у вас есть форма, вы также можете сделать var data = jQuery("#myForm").serialize();
, который помещает ее в форму, которую jQuery.ajax
может понять и использовать. В противном случае используйте литерал объекта, описанный в ответе Ника.
Вам не нужно кодировать POST-переменные URL. Однако, если вы взаимодействуете с базой данных, вы захотите убедиться, что ваши переменные защищены от атаки на инъекции.
Что вы будете иметь, но, как сказал Вивин, если это форма, то лучший способ сделать это через .serialize()
.
Я использую это LOT лично для всех представлений моей формы (сделано через .ajax()
).