jquery のオートコンプリート機能に問題があります。リダイレクトしないソースを指定すると、オートコンプリートは問題なく動作します (これは私のテスト環境でした)。本番環境では、これはワークフロー ツールで機能する必要があります。
jquery ソースのページもこのワークフロー ツールで記述されており、データを出力します。唯一の問題は、この出力ページを GET パラメーターで呼び出すと、JSON の結果を含む別のページにリダイレクトされることです。
提案が得られないため、jqueryには少し問題があるようです。
これは、入力フィールドの jquery です。
$(function() {
$("#unameLeiter").autocomplete({
source: function(request, response) {
$.ajax({
url: "http://localhost:8082/ivy/pro/designer/ldapCurrent2/137553578A7A2B3F/persons.ivp",
dataType: "jsonp",
data: {
search: request.term
},
success: function(data) {
response($.map(data.persons, function(item) {
return {
label: item.cn,
value: item.imPersonalNumber
}
}));
}
});
},
minLength: 0,
select: function(event, ui) {
$("<div/>").text(ui.item.label + " " + ui.item.value).prependTo("#output");
}
})
})
HTML はかなり見栄えが悪いですが、入力フィールドと出力 div しかないので、それは重要な部分ではありません。ネットワーク リクエストを見ると、jquery が「ソース」URL に対して適切な呼び出しを行っているのに、別の URL にリダイレクトされていることがわかります (そこに表示される結果は、私が検索したものです)。
では、実際の出力にリダイレクトする jquery のソースをどのように処理すればよいでしょうか?
要約する
- jqueryはこのようにデータを送信します
http://source/persons.ivp?callback=jquery87346&search=John
- ワークフロー ツールはパラメータを取得して処理し、新しい URL にリダイレクトします
http://source/L84FJ8LA4LS/CMSObject.ivc?taskId=84&processId=LKIA47&pid=KS4U6T84LSZ
- 新しい URL には、パラメーターの結果が含まれています
John
302 permanently moved
リダイレクトのため、jQuery は結果を処理しません。
このワークフロー ツールの動作を変更する方法がありません。したがって、これをjQueryで解決する必要があります。
更新: JSON データを出力する JSP ファイルが出力を html エンコードしていることに気付きました。これが jquery を妨げているようです。HTMLエンコードせずにJSPでデータを印刷する方法を知っている人はいますか?
出力ページのソースコードを表示したときの外観:
jquery1234({"total":"2", "persons":[{"cn":"John Smith", "imPersonalNumber":"5616"},{"cn":"Peter Jackson", "imPersonalNumber":"7016743"}]})
通常の外観:
jquery1234({"total":"2", "persons":[{"cn":"John Smith", "imPersonalNumber":"5616"},{"cn":"Peter Jackson", "imPersonalNumber":"7016743"}]})