jQuery load()没有在url中传递完整的字符串

时间:2012-03-21 18:59:38

标签: javascript jquery

我有一个带有国家/地区名称的函数,并通过load()函数将其传递给处理页面。

在以下示例中,该国家/地区是“美属萨摩亚”

function loadRates(oArg) {
        var Destination = oArg.Destination.toString() || '';
        alert(Destination); // Alerts "American Samoa"
        var uniqueid = new Date().getTime();
        $('#divRates2').html('<img src="/images/ajax-loader.gif">').load('inc_rates_output.cfm?Destination=' + Destination + '&uniqueid=' + uniqueid);
    }

但是,处理页面(inc_rates_output.cfm)将Destination url变量作为“American”接收,即没有“Samoa”。

任何想法都赞赏。

3 个答案:

答案 0 :(得分:3)

在网址中使用'encodeURI(Destination)'

URL(RFC 1738,Dec。'94)的规范提出了一个问题,因为它限制了URL中允许的字符仅限于US-ASCII字符集的有限子集:

  

...只有字母数字[0-9a-zA-Z],特殊字符   “$ -_。+!*'(),”[不包括引号 - ed]和保留字符   用于保留目的可以在URL中以未编码的方式使用。

答案 1 :(得分:1)

试试这个: 你可以传递参数作为对象加载,让jquery为你做编码。

function loadRates(oArg) {
        var Destination = oArg.Destination.toString() || '';
        alert(Destination); // Alerts "American Samoa"
        var uniqueid = new Date().getTime();
        $('#divRates2').html('<img src="/images/ajax-loader.gif">').load('inc_rates_output.cfm', {"Destination" : Destination, "uniqueid" : uniqueid});
    }

答案 2 :(得分:0)

您需要将Destination传递给转义函数

escape(Destination)