【问题标题】:jquery autocomplete source redirectsjquery 自动完成源重定向
【发布时间】:2012-05-26 01:06:32
【问题描述】:

我遇到了 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 中的源,它重定向到实际输出?

总结

  1. jquery 发送这样的数据http://source/persons.ivp?callback=jquery87346&amp;search=John
  2. 工作流工具获取参数、处理它们并重定向到新的 url http://source/L84FJ8LA4LS/CMSObject.ivc?taskId=84&amp;processId=LKIA47&amp;pid=KS4U6T84LSZ
  3. 新 URL 包含参数 John 的结果
  4. 由于302 permanently moved 重定向,jQuery 无法处理结果。

我无法更改此工作流工具的行为。所以我必须用 jQuery 来解决这个问题。

更新:我注意到输出 JSON 数据的 JSP 文件对我的输出进行了 html 编码,这似乎扰乱了 jquery。有谁知道我如何在 JSP 中打印数据没有 html 编码?

查看输出页面的源代码时的外观: jquery1234({&amp;quot;total&amp;quot;:&amp;quot;2&amp;quot;, &amp;quot;persons&amp;quot;:[{&amp;quot;cn&amp;quot;:&amp;quot;John Smith&amp;quot;, &amp;quot;imPersonalNumber&amp;quot;:&amp;quot;5616&amp;quot;},{&amp;quot;cn&amp;quot;:&amp;quot;Peter Jackson&amp;quot;, &amp;quot;imPersonalNumber&amp;quot;:&amp;quot;7016743&amp;quot;}]})

正常的样子:

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

【问题讨论】:

    标签: jquery jsp redirect autocomplete jsonp


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      • 2019-12-08
      • 2013-08-28
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      相关资源
      最近更新 更多