JQuery.ajax (): проблема с данными параметров при использовании службы WCF - PullRequest
0 голосов
/ 13 января 2011

Я использую JQuery для использования службы WCF. На самом деле это работает нормально:

var para = ' { "Parameter" : { "ID" : "5", "Name" : "Peter" } }'
$.ajax({
   type: "POST",
   contentType: "application/json",
   data: para,
   url: url
   success: success
});

Но я не хочу передавать параметр данных как String, и я думаю, что должна быть возможность передавать ist как массив любым способом. Вот так:

var para = { "Parameter" : { "ID" : 5, "Name" : "Peter" } }

Но когда я пытаюсь это сделать, я получаю сообщение об ошибке. Что я делаю не так?

Спасибо

Ответы [ 2 ]

1 голос
/ 13 января 2011
var para = '{ "ID" : "5", "Name" : "Peter" }';
$.ajax({
   type: "POST",
   data: para,
   url: url
   success: success
});

Если вы отформатируете это так, вы сможете получить значения как

$_POST will return array('ID' => '5', 'Name' => 'Peter');

, но вы также можете получить к нему доступ, выполнив:

$_POST['ID'] and $_POST['Name']

может использовать функцию jquery post:

var para = '{ "ID" : "5", "Name" : "Peter" }';
$.post(
    url, 
    para
);
0 голосов
/ 13 января 2011

Вы можете использовать функцию JSON.stringify из json2.js .Тогда ваш ajax-вызов будет

var para = { Parameter : { ID :5, Name : "Peter" } };
$.ajax({
   type: "POST",
   contentType: "application/json",
   data: JSON.stringify(para),
   url: url
   success: success
});

Использование ручного преобразования в строку JSON не годится из-за возможного пространственного отсутствия символов в строке, которое должно быть экранировано (подробности см. http://www.json.org/).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...