3

この問題に対する他のすべての回答を見て、ほとんどの解決策を試しましたが、何もうまくいかないようです。私は明らかに xhrArgs 定義の後に来る Dojo.xhrPOST(xhrArgs) を使用しています。

私のxhrArgs:

 xhrArgs = 
 {
     headers: 
     { 
       'Accept': 'application/json',
       'Content-Type': 'application/json' 
     },
  'url': thisUrl,
  'postData':requestString,
  'dataType' : 'json',
  'userId': userId,
  'measurementSystem': measurementSystem,
  'systemId': openedSystemId,
  'handleAs': 'text',
  'load': function(data)
     {
         // Replace newlines with nice HTML tags.
         data = data.replace(/\n/g, "<br/>");
         dojo.byId(target).innerHTML = data;
     },
    'error': function(error)
    {
       dojo.byId(target).innerHTML = error;
    }
};

私のコントローラーメソッドの署名と注釈は次のとおりです

@RequestMapping(value="/saveSystemConditions", method= RequestMethod.POST,  headers =                                                                               {"content-type=application/json"})
 public String saveSystemConditions(HttpServletRequest request, HttpServletResponse response, @Valid @RequestBody Load load, BindingResult result)

xhrArgsに示されている私のrequestStringは

"{'systemID':'76', 'system.systemType':'1', 'unitsOfMeasure':'english', 'loadID':'63', 'dispersionInstallationLocation':'Duct+or+AHU', 'humidificationSystemType':'1', 'totalAirVolume':'1200.0', 'desiredDryBulb':'70.0', 'desiredAirMoistureType':'2', 'desiredAirMoisture':'55.0', 'outsideAirConditionsType':'1', 'outsideAirIntakeRateMeasuredAs':'0', 'loadCountry':'United+States', 'outsideAirVolumeMeasuredIn':'0', 'loadState':'Minnesota', 'outsideAirIntakeRate':'25.0', 'loadCity':'Minneapolis', 'elevationFeet':'837.0', 'outsideDryBulb':'-6.8', 'outsideAirMoisture':'57.3', 'userEnteredLoad':'7.43'}"

415 (サポートされていないメディアの種類) が表示されます

どんな提案でも大歓迎です。デビッド

4

2 に答える 2

1

これは、スプリングMVCマッピングハンドラーとの明示的な宣言に問題がありました<mvc:annotation-conig />

于 2013-01-23T09:50:54.593 に答える