2016-10-17 8 views
1

これは、UPS出荷WebサービスAPIです。JSON構文エラーを解決する方法。どのように応答を取得するには?

{ "エラー":{ "コード": "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"ツールによって完全に実行されています。 回答を更新してください。

答えて

4

あなたはJSONを送信していません。 jQueryのデフォルトのシリアライゼーションは、オブジェクトにURIをエンコードするときに行います。代わりにJSONを送信するには、オブジェクトをJSON.stringifyという文字列に変換します。送信する内容がcontentTypeを使用するJSONであることも確認する必要があります。

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

本当に良い答えです。ご回答有難うございます。 –

関連する問題