jquery自动完成源重定向

时间:2012-05-18 12:47:00

标签: jquery jsp redirect autocomplete jsonp

我遇到了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正确调用了“source”url,但随后被重定向到另一个URL(结果显示我搜索到的内容)。

那么,我如何处理jquery中的源,它重定向到实际输出?

总结

  1. jquery发送这样的数据http://source/persons.ivp?callback=jquery87346&search=John
  2. 工作流工具获取参数,处理参数并重定向到新网址http://source/L84FJ8LA4LS/CMSObject.ivc?taskId=84&processId=LKIA47&pid=KS4U6T84LSZ
  3. 新网址包含参数John
  4. 的结果
  5. 由于302 permanently moved重定向,jQuery无法处理结果。
  6. 我无法更改此工作流工具的行为。所以我必须用jQuery解决这个问题。

    更新:我注意到输出JSON数据的JSP文件,html编码我的输出,这似乎打扰了jquery。有没有人知道如何在JSP 中打印数据而不用 html编码呢?

    查看output-page的源代码时的外观如何: jquery1234({&quot;total&quot;:&quot;2&quot;, &quot;persons&quot;:[{&quot;cn&quot;:&quot;John Smith&quot;, &quot;imPersonalNumber&quot;:&quot;5616&quot;},{&quot;cn&quot;:&quot;Peter Jackson&quot;, &quot;imPersonalNumber&quot;:&quot;7016743&quot;}]})

    它看起来如何正常:

    jquery1234({"total":"2", "persons":[{"cn":"John Smith", "imPersonalNumber":"5616"},{"cn":"Peter Jackson", "imPersonalNumber":"7016743"}]})
    

1 个答案:

答案 0 :(得分:1)

事实证明,问题不在于重定向。事实上该工具逃脱了整个数据。在我发现如何阻止他这样做之后,一切正常。