2016-12-16 13 views
1

私はSpring 4でJSONPサポートについて多くのことを読んできましたが、正しいメディアタイプ(chrome下)で動作させるためのきれいな説明はまだありませんMappingJacksonValueレスポンスと厳密なMIMEタイプエラーを伴うSpring Boot JSONP

1)私ははJsonpAdvice CFR Jackson JSONP Support

@ControllerAdvice 
public class JsonpAdvice extends AbstractJsonpResponseBodyAdvice { 
    public JsonpAdvice() { 
     super("callback"); 
    } 
} 

2)私のコントローラは、MappingJacksonValueと応答をラップしている*

を追加しました

MappingJacksonValueが必要か、MappingJackson2HttpMessageConverterがそれを処理するかどうか不明ですか?

3)私はapplication.ymlに明示メディアタイプを追加しました:私はまだクローム次のエラーを取得するしかし

spring: 
    profiles.active: development 
    jackson.property-naming-strategy: SNAKE_CASE 
    mvc: 
    media-types: 
     json: 'application/json' 
     xml: 'application/xml' 
     jsonp: 'application/javascript' 

"からスクリプトを実行することを拒否https://example.com/api/test?callback=jQuery22406993800323428312_1481922214995&_=1481922214996 ' MIMEタイプ(' application/json ')が実行可能でなく、厳密なMIMEタイプチェックが有効になっているためです。

ステップがありません。またはあまりにも多くの設定?

答えて

1

私のJsonpAdvice.groovyをデバッグした後、AbstractJsonpResponseBodyAdviceがStringのリストを期待していることが判明しました:private final String [] jsonpQueryParamNames;

私の初期コードは単純な文字列を使用していました。ここに修正があります:

@ControllerAdvice 
public class JsonpAdvice extends AbstractJsonpResponseBodyAdvice { 
    public JsonpAdvice() { 
     super(["callback"]) 
    } 
} 
関連する問題