** не на самом деле только указатель на указатель (как в объявлении), но также разыменовывание разыменовывания (в операторе).
Это часто используется в C, который не имеет & нотация для ссылок, например, обновить возвращаемое значение, которое является типом указателя:
int alloc_foo(struct foo **foo_ret)
{
*foo_ret = malloc(sizeof(struct foo));
return 1; /* to indicate success; return value in foo_ret */
}
Пожалуйста, обратитесь к этой статье Дэйва Уорда. Это полное руководство по этому поводу. Также вы найдете там другие замечательные материалы для jquery / ASP.net.
РЕДАКТИРОВАТЬ: - Дэйв вызывает метод без каких-либо аргументов, вы можете заменить пустое свойство data фактическими данными, которые хотите отправить:
$.ajax({
type: "POST",
url: "Default.aspx/GetDate",
data: "{'name':'tiger1','hobbies':['reading','music']}",//PUT DATA HERE
contentType: "application/json; charset=utf-8",
dataType: "json",
WebMethods ожидает строку, содержащую JSON, которая будет проанализирована на стороне сервера, я использую функцию JSON.stringify
для преобразования объекта параметров в строку и отправку данных, у меня есть такая функция:
jQuery.executePageMethod = function(location, methodName, methodArguments,
onSuccess, onFail) {
this.ajax({
type: "POST",
url: location + "/" + methodName,
data: JSON.stringify(methodArguments), // convert the arguments to string
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data, status) {
var jsonData = JSON.parse(data.d);
onSuccess(jsonData, status);
},
fail: onFail
});
};
Я рекомендую вам включить парсер json2.js на свои страницы, чтобы функция JSON.stringify была доступна для разных браузеров.
Еще одна библиотека, которую вы можете использовать, - это jquery-json
библиотека . После включения:
var json = $.toJSON(your_object);
Вам нужно будет опубликовать его с помощью Ajax и принять входящую строку с помощью веб-метода. Затем вам нужно будет использовать десериализатор JavaScript, чтобы преобразовать его в объект на стороне сервера.
Самые удобные решения, которые я видел, упрощают это за счет использования библиотеки JSON2.js с открытым исходным кодом для синтаксического анализа и преобразования данных сложных объектов в строки.
Подробно описаны две отличные статьи:
Использование сложных типов для упрощения вызовов служб Дэйв Уорд.
Массивы JavaScript через JQuery Ajax в Asp.Net WebMethod Крис Брандсма. ] Вторая статья может быть особенно актуальной для вас, хотя она вызывает метод веб-службы со следующей подписью ...
public void SendValues (List
list)
... он демонстрирует, как использовать библиотеку JSON2.js для рендеринга List
в javascript (с использованием jQuery этот пример взят непосредственно из второй статьи):
var список = ["а", "б", "в", "г"]; вар jsonText = JSON.stringify ({список: список}); // 'Список' размещен так $ .ajax ({ тип: "POST", url: "WebService1.asmx / SendValues", данные: jsonText, contentType: "application / json; charset = utf-8", dataType: "json", успех: функция () {предупреждение ("это сработало"); }, сбой: функция () {предупреждение ("Ой ой"); } });
Просто используйте URL своего веб-метода вместо веб-службы.
JSON.Stringify помогает, но:
это не кросс-браузер Посмотрите здесь: http://www.sitepoint.com/blogs/2009/08/19/javascript-json-serialization/#
Для браузера встроенные функции - каждый браузер будет иметь свои проблемы. Если вы используете вышеупомянутую сериализацию, вам нужно: