如何将JavaScript变量传递给jQuery ajax请求

时间:2015-06-09 16:20:57

标签: javascript jquery ajax

我正在尝试将变量传递给jquery ajax请求:

$(document).ready(function() {
            // get page number
            var page = parseInt(getUrlParameter('page'));
            if (page < 1) page = 1;
            var page_next = page + 1;

          $.ajax({
                type: "GET",
                data: { 
                    page: page,

                },  
                dataType: 'json', 
           ...

不幸的是变量&#34; page&#34;似乎没有出现在ajax请求中。做一个cosole.log(页面);内心的讽刺&#34; NaN&#34;作为一种价值。

问题似乎是

if (page < 1) page = 1;

如果通过get检索到的值不存在,则页面将为NoN。

如何确保页面始终定义为最小1?

2 个答案:

答案 0 :(得分:1)

您的getUrlParameter正在返回一些无法转换为数字NaN = Not a Number的内容,如果您共享该功能,我们可能会进一步调试您的问题的根本原因,与此同时,我建议进行以下验证:

var page = parseInt(getUrlParameter('page'));
if (page < 1 || isNaN(page)) page = 1;
var page_next = page + 1;

这样,如果您的页面不是数字,则将其默认为第1页。 希望这可以解决问题并帮助你。

答案 1 :(得分:1)

如果您的问题在if语句中,我能考虑的最快解决方案(尽管我不赞成)是这样的:

替换:

var page = parseInt(getUrlParameter('page'));

使用:

var page = +getUrlParameter("page") || 1;

如果页面为假(NaN为假),则将其设置为1,否则为其结果。

小提琴的例子:

function getUrlParameter ( param ) {
    return param === "page" ? 5 : false;
}

var page = +getUrlParameter("hello") || 1;
alert(page);

page = +getUrlParameter("page") || 1;
alert(page);

http://jsfiddle.net/51tvdsve/

无论如何,你应该尝试修复你的getUrlParameter函数而不是试图避免它的输出,但这只是我的意见。