Неверная примитивная ошибка JSON
Пожалуйста, помогите. В моем вызове ajax получение ошибки Недействительный примитив JSON, что не так с этим следующим вызовом ajax
$.ajax({
url: "/Precedent/ShowPartyContents", type: "POST",
contentType: 'application/json; charset=utf-8',
dataType: 'html',
data:{'partyId':party,'PartySelCombo':valueFrom,'DocumentId':DocId},
sucess:function(result){
alert("String"+ result);
//jq("#PartyTagContentArea-"+ pass cheyyenda id).html(data).fadeIn();
},
error : function( ts ){
alert("error :(" + ts.responseText);
}
});
Спасибо
Ответы
Ответ 1
Вы обещаете тип контента application/json
, но отправляете простой JS-объект, который с помощью jQuery сериализуется как строка с процентилем. Эта сериализация может быть далека от действительной JSON.
Изменить:
data: {'partyId':party,'PartySelCombo':valueFrom,'DocumentId':DocId},
в
data: JSON.stringify({'partyId':party,'PartySelCombo':valueFrom,'DocumentId':DocId}),
Ответ 2
Попробуйте, удалите "" из данных,
data:{partyId:party,PartySelCombo:valueFrom,DocumentId:DocId}
Используйте одиночную кавычку, чтобы присвоить свои значения, например
Неправильно:
$.ajax({
type: 'POST',
contentType: 'application/json',
dataType: 'json',
url: 'WebService.asmx/Hello',
data: { FirstName: "Dave", LastName: "Ward" }
});
Справа:
$.ajax({
type: 'POST',
contentType: 'application/json',
dataType: 'json',
url: 'WebService.asmx/Hello',
data: '{ FirstName: "Dave", LastName: "Ward" }'
});
Ниже приведены ссылки для пояснений
Недопустимый прецедент Json Возможная причина
Ответ 3
Вы столкнулись с проблемой из-за этих строк:
contentType: 'application/json; charset=utf-8',
dataType: 'html',
сначала вы говорите приложению, что результатом возврата будет тип JSON, а во второй строке вы говорите, что dataType будет HTML. Тогда как можно вернуть данные json.
Чтобы вернуть и использовать данные json, вы должны указать dataType:'json'
.
Используйте это:
contentType: 'application/json; charset=utf-8',
dataType: 'json',
Примечание: у вас также неправильно написана функция успеха.