使用Ajax发送查询字符串和会话信息

时间:2014-11-27 23:52:55

标签: javascript jquery ajax session asp.net-ajax

我正在使用Ajax创建评论而不能正常工作,我不确定问题出在哪里。我在想它可能就像我正在阅读UserID和VideoID

我在会话中保存了UserID,并且videoID保存在查询字符串中。 我读错了吗?!如果是的话我怎么读它们?

这是我的js代码:

        <script type="text/javascript">

         $(document).ready(function () {

        $('#btnPost').click(function (e) {

            $.ajax({

                url: "Ajax/ProcessAddComment.aspx",
                data: {
                    commenttext: $('.txtcomment').val(),
                    videoid: Request.QueryString["d"],

            userid: $.session.get('UserID')
                },
                success: function (data) {
                    alert(data);

                },
                error: function () {

                }

            });



        });


        $.ajax({
            url: "Ajax/ProcessFindComment.aspx",
            data: { videoid: Request.QueryString["id"] },
            success: function (data) {
                 // Append to the bottom
                // of list while prepend
                // to the top of list

                $('.postlist').html(data);
            },
            error: function () {
                alert('Error');
            }
        });




    });

1 个答案:

答案 0 :(得分:0)

我假设您正在使用this plugin来设置会话。

我认为您的问题是:Request.QueryString

尝试使用以下JS函数从查询字符串中获取值,而不是:

function (key) {
    if (!key) return '';
    key = key.replace(/[*+?^$.\[\]{}()|\\\/]/g, "\\$&"); // escape RegEx meta chars
    var match = location.search.match(new RegExp("[?&]" + key + "=([^&]+)(&|$)"));
    return (match && decodeURIComponent(match[1].replace(/\+/g, " "))) || '';
};

注意:您可以使用开发人员窗口中的网络选项卡(在大多数浏览器中为F12)来查看Ajax数据。那里的错误控制台应该告诉您是否存在JavaScript错误,并且网络选项卡应该告诉您Ajax请求和响应中的内容。