在URL ajax加载后获取请求的URL参数

时间:2012-06-14 08:40:46

标签: jquery ajax url parameters

嗨,那些人有一些脚本问题

我有一些加载html网址的标签字段

我需要在我加载的html中获取该url的参数

<div id="tabs">
<ul>
    <li><a href="hosts/timeline.html?ip=${ipValue}">Timeline</a></li>
</ul>

这是我的timeline.html文件内容

<script id="timelineTmpl" type="text/x-jquery-tmpl"> 

{{each response}}
    <li><b>${time}</b><br />
    {{each items}}
            ${icon}: <em>${text}. </em> <br />
    {{/each}}   
{{/each}}

</li>
</script>

<ul id="timeline"></ul>


<script type="text/javascript" charset="utf-8">

    function getURLParam(urlSearch, param) {
        p = urlSearch.split(/[&?]/);
        p = _.reject(p, function(e) { return e == "" });
        p = _.map(p, function(e) { return e.split("=")});   
        p = _.reduce(p, function(memo, a) {memo[a[0]] = a[1]; return memo; }, {});
        return p[param]
    }

    var request = $.ajax({
        type: 'GET',
        url: 'ajax/hosts/timeline.xsp?ip='+getURLParam(location.search, "ip"),
        dataType: 'json'
    });

    request.done(function(data){
        $("#timelineTmpl").tmpl(data).appendTo("#timeline");
    });

    request.fail(function(jqXHR, textStatus, errorThrown) {
        console.log(errorThrown);
        console.log(textStatus)
    });

现在函数getURLParam返回undefined

如何让它检索我已经通过的ip vale

好的,这可能是我申请timeline.html的方式吗?

2 个答案:

答案 0 :(得分:2)

我有同样的问题。提供的链接也没有回答您的问题。 我无法解决它所以我使用了可能对你有帮助的解决方法。只需将数据附加到任何DOM元素。

例如,在模板文档中:

$(document).ready(function() {
    $('#tabs').data('ip', '${ipValue}');
});

然后,在你的timeline.html中你可以这样做:

 url: 'ajax/hosts/timeline.xsp?ip=' + $('#tabs').data('ip')

希望它有所帮助,

答案 1 :(得分:0)

首先,我会将此hosts / timeline.html更改为hosts / timeline.php;我不认为HTML知道如何处理通过这种方式传递的参数;然后重试;并且要小心使用RegEx的地方,你应该使用split(/ [&amp;?] + /),因为你可以有多个参数和值