0

以下の構成で桟橋が埋め込まれたSpringMVC3Mavenアプリを実行しています。

    <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <version>6.1.14</version>
        <configuration>
            <scanIntervalSeconds>10</scanIntervalSeconds>
            <testClassesDirectory>/Users/mydownloads/Downloads/jackson-all-1.8.10.jar</testClassesDirectory>
            <useTestClasspath>true</useTestClasspath>
        </configuration>
    </plugin> 

上で見たように、私はjackson-all-1.8.10 jarテストクラスパスにあります。

コントローラーからjsonを生成すると、以下のようなマッピングが正常に機能します。

@RequestMapping(value="/getSomething",produces="application/json",method=RequestMethod.GET)

ただし、POSTマッピングを作成しようとすると、エラーが発生します。415: Unsupported Media Type

POSTに使用しているアノテーションは次のとおりです。

@RequestMapping(value="/postSomething", consumes="application/json", method= RequestMethod.POST)

クラスパスにあるジャクソンjarがメディアタイプを処理するように、これを修正するにはどうすればよいですか?

クライアントでデータのPOSTをリクエストしているとき、リクエストには次のヘッダーがあります。

Request URL:http://localhost:8080/myapp/postSomething
Request Method:POST
Status Code:415 Unsupported Media Type
**Request Headersview source**
  Accept:*/*
  Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
  Accept-Encoding:gzip,deflate,sdch
  Accept-Language:en-US,en;q=0.8
  Connection:keep-alive
  Content-Length:23
  Content-Type:application/x-www-form-urlencoded
  Cookie:JSESSIONID=1f0mox1qw67zl
  Host:localhost:8080
  Origin:http://localhost:8080
  Referer:http://localhost:8080/myapp/
  X-Requested-With:XMLHttpRequest

私はdatatype: 'json'jQueryを持っています

4

1 に答える 1

0

Content-Typeリクエストを正しく設定していません。

投稿したヘッダーからわかるように、Content-Typeヘッダー値は application/x-www-form-urlencoded、jqueryのデフォルトです。

contentType: 'application/json' jqueryajax呼び出しで属性を使用します。

このdataType属性は、応答で予期されるコンテンツタイプをjqueryに指示します。

于 2012-10-22T15:10:18.863 に答える