Как сейчас, я создаю объект JavaScript, а затем преобразую его в строку, помещаю в скрытое текстовое поле, и мой код может прочитать эту строку. Затем я использую JSON.NET для разбора строки, которая работает нормально. Сейчас я пытаюсь использовать ajax, чтобы опубликовать его в своем веб-сервисе, но у меня возникают проблемы с отправкой строки. Я пробовал много способов, но получаю типичные ошибки, такие как
Invalid JSON primitive: myString.
Итак, я проверил это http://encosia.com/2010/05/31/asmx-scriptservice-mistake-invalid-json-primitive/, и оно работает с жестко закодированными значениями, но я хочу использовать переменную.
JavaScsript для создания объекта:
for (var i = 0; i < results.rows.length; i++) {
var row = results.rows.item(i);
var customer = new Object();
customer.id = row['id']
customer.name = row['name']
var customerString = JSON.stringify(customer);
$.ajax({
type: "POST",
url: "synchronise.asmx/synchroniseCustomers",
data: "synchroniseCustomers: " + customerString,
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function (xhr, status) {
alert("An error occurred: " + status);
},
success: function (msg) {
alert("success");
}
});
}
WebMethod:
public void synchroniseCustomers(string customerString)
{
JObject o = JObject.Parse(customerString);
string id = (string)o["id"];
string name = (string)o["name"];
Если я использую data: '{ FirstName: "Dave", LastName: "Ward" }'
в приведенном выше примере это работает, но вместо этого я хочу передать строку.
Есть предложения?
Спасибо