我有一个带有国家/地区名称的函数,并通过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”。
任何想法都赞赏。
答案 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)