0

Tomcat サーバーでホストされている Spring MVC アプリケーションを使用しています。外部Spring MVCアプリケーションで検索するために、クライアントアプリケーションに埋め込むことができるウィジェットを開発しようとしました。外部アプリケーションとの通信には、クライアント アプリケーションで JSONP を使用しました。しかし、Spring MVC アプリケーションに日本語の文字をそのままリクエスト パラメータとして渡すことはできません。これが私が使用したクライアント側のコードです。

$.ajax({
type: "GET",
url : "http://abc.com:8080/myTestapp/search?callback=mycallback",                
data: ({name : $('#form-refineSearchQuery').val(),iDisplayStart : 0,iDisplayLength: 100}),
dataType: "jsonp",
beforeSend: function(x) {
    if (x && x.overrideMimeType) {
        x.overrideMimeType("application/j-son;charset=UTF-8");
}
},

jsonp : false,                                              

}); 

日本語の文字を指定した id form-refineSearchQuery の入力テキスト ボックスがあります。しかし、リクエストパラメータは他の形式にエンコードされており、エンコードされたデータとしてサーバーに到達しています。

これは、入力テキスト ボックスに指定したパラメーターです- 有希子 この問題により、春のアプリケーションでの検索が失敗するため、何か助けてください。

4

1 に答える 1

0

こんにちはuser2330825!

問題は、JSONP の実装方法にあります。DOM 内にスクリプト タグを作成し、そこから GET リクエストとして送信します。ブラウザは通常、そこからのエンコーディング仕様を無視し、代わりにレスポンス エンコーディングに依存します。応答の Content-type ヘッダーに charset 属性を追加してみてください (つまり、サーバー側の要求処理でset_header("Content-type", "text/javascript; charset=UTF-8")、それが機能するかどうかを確認してください。

于 2013-05-09T19:32:31.073 に答える