如何编码传递给div.load()的URL?

时间:2011-10-31 04:58:05

标签: javascript jquery html

我正在使用网址重写并使用

 $('#somediv').load(query, function (response, status, xhr) {
    if (status == "error") {
        var msg = "Sorry there was an error: ";
        $("#somediv").html(msg + xhr.status + " " + xhr.statusText);
    }
});

但是当我的query具有'?','&'等字符时div.laod()不会工作和'='。 就像我传递如beloew所示的参数一样,div渲染不会发生。

query ="http://vmsbawcm001.ed.cps.something.com/content/pms/Snapshot.html?date=2011-09-30&email=something@gmail.com&view=external"

但这有效!

 query ="http://vmsbawcm001.ed.cps.something.com/content/pms/Snapshot.html"

那么如何以某种编码方式传递参数?或任何其他解决方案是受欢迎的,因为我无能为力..

经过一些更多的研究,我怀疑只有@符号才会产生问题。是这样吗?如果是,那可能的解决办法是什么?

谢谢, 阿达什讷

1 个答案:

答案 0 :(得分:2)

.load()中的第二个参数用于传递查询数据。这是参考:http://api.jquery.com/load/

演示:http://jsfiddle.net/ThinkingStiff/EKHbQ/

HTML:

<div id="somediv"></div>

脚本:

var uri = 'http://vmsbawcm001.ed.cps.something.com/content/pms/Snapshot.html',
    data = {date:"2011-09-30",email:"something@gmail.com",view:"external"};

$( '#somediv' ).load( uri, data, function ( response, status, xhr ) {

    if ( status == 'error' ) {

        var msg = 'Sorry there was an error: ';
        $( '#somediv' ).html( msg + xhr.status + ' ' + xhr.statusText );

    };

});