Как закодировать URL, передаваемый в div.load()?

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

Я использую перезапись URL и использую

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

Но div.laod() не будет работать, если мой query символ имеет такие символы, как ‘?’,’amp;’ и ‘=’.
Например, когда я передаю параметры, как показано ниже, рендеринг div не произойдет.

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

Но это работает!

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

Итак, как мне передать параметры каким-либо закодированным способом? или любое другое решение для этого приветствуется, потому что я невежественен..

После некоторых дополнительных исследований я сомневаюсь @ , что проблему создает только символ. Так ли это? Если да, то каково возможное решение для этого?

Спасибо, Adarsh

Комментарии:

1. О, это была не просто опечатка, в любом случае я не сохраняю строку URL-адреса таким образом, я получаю ее из Webconfig, также добавляя параметры, я просто помещаю все это, чтобы сообщить, что именно передается в запросе

Ответ №1:

Второй параметр .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 );

    };

});
 

Комментарии:

1. Хорошо, похоже, это сработало, я буду использовать что-то вроде data = {date:dateval,email:emailId,view:viewtype}; где dateval(введите дату) emailId и viewType (введите var). Мой вопрос в том, что мне не нужно определять дату, адрес электронной почты и просматривать отдельно, верно? Я могу напрямую использовать его внутри данных?

2. ДА. Вы можете помещать переменные или данные непосредственно в карты. Это ваш вопрос? Например, будет работать {date: new Date(), email: emailvar, view: «viewtype»} .