Как решить синтаксическую ошибку JSON. Как получить ответ?

Это API доставки веб-сервисов UPS. Я получаю эту ошибку:

{«Ошибка»: {«Код»: «4», «Описание»: «Ошибка синтаксиса JSON»}}

Код AJAX:

  <script>
var formData = { "UPSSecurity": { "UsernameToken": { "Username":"xxx.com", "Password":"xxxxx" }, "ServiceAccessToken": { "AccessLicenseNumber":"1234D567DF67" } }, "RateRequest": { "Request": { "RequestOption":"Rate", "TransactionReference": { "CustomerContext":"Test saran" } }, "Shipment": { "Shipper": { "Name":"Saravanan", "ShipperNumber":"Y72A41", "Address": { "AddressLine":["2311 York Rd"], "City":"Sebastopol", "StateProvinceCode":"CA", "PostalCode":"95473", "CountryCode":"US" } }, "ShipTo": { "Name":"ShipToName", "Address": { "AddressLine":["195 N main st"], "City":"Sebastopol", "StateProvinceCode":"CA", "PostalCode":"95472", "CountryCode":"US" } }, "ShipFrom": { "Name":"ShipFromName", "Address": { "AddressLine":"2311 York Rd", "City":"Sebastopol","StateProvinceCode":"CA", "PostalCode":"95473", "CountryCode":"US" } }, "Service": { "Code":"03", "Description":"Express" }, "Package": { "PackagingType": { "Code": "02", "Description": "Rate" }, "Dimensions": { "UnitOfMeasurement": { "Code": "IN", "Description": "inches" }, "Length": "7", "Width": "5", "Height": "2" }, "PackageWeight": { "UnitOfMeasurement": { "Code": "Lbs", "Description": "pounds" }, "Weight": "10" } }, "ShipmentRatingOptions": { "NegotiatedRatesIndicator": "" } } } };

$.ajax({
type       : "POST",
url        : "https://wwwcie.ups.com/rest/Rate",
crossDomain: true,
timeout    : 240000,
data       : formData,
dataType   : 'json',
success    : function(response)
{
alert("result="+response);
}
});

</script>

Я не знаю, где я не прав. Но этот запрос отлично выполняется инструментами «POST MAN» и «ARC».
Пожалуйста, обновите ответ.

1

Решение

Вы не отправляете JSON; Сериализация по умолчанию в jQuery, когда вы даете ему объект, является URI-кодировкой. Чтобы вместо этого отправить JSON, преобразуйте ваш объект в строку с JSON.stringify, Вы также должны определить, что вы отправляете JSON, используя contentType, так:

contentType: 'application/json',
data       : JSON.stringify(formData),
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]