2013-04-27 3 views
0

Я пытаюсь загрузить веб-сайт в div (div.content).JQuery url construction проблема

Веб-сайт требует входа в систему через POST.

javascript пытается загрузить сайт, обнаруживает перенаправление к форме входа в систему, POSTs имя пользователя и пароль и, наконец, перезагружает URL-адрес, поскольку аутентификация была успешной.

Теперь проблема в том, что URL-адрес не построен правильно. URL должен быть таким:

https://mysite.com/WebUntis/index.do?school=schoolname#Timetable? 
onlyTimetable=true&ajaxCommand=renderTimetable&date=20130418&type=1&id=17 
&formatId=2&departmentId=-1&buildingId=-1 

но JQuery строит это так:

https://mysite.com/WebUntis/index.do? 
onlyTimetable=true&ajaxCommand=renderTimetable&date=20130418&type=1&id=17 
&formatId=2&departmentId=-1&buildingId=-1. 

Может кто-нибудь помочь мне здесь? Я проверил синтаксис, просмотрев множество примеров, но я не могу найти исправление.

function openUrl() 
{ 
    jQuery.ajax({ 
    url: 'https://mysite.com/WebUntis/index.do?school=schoolname#Timetable?', 
    type:'GET', 
    dataType: 'html', 
    data: { 
     //school: 'schoolname', 
     ajaxCommand: 'renderTimetable', 
     onlyTimetable: 'true', 
     date: '20130418', 
     type: '1', 
     id: '17', 
     formatId: '2', 
     departmentId: '-1', 
     buildingId: '-1' 
    }, 
    success: function(result) { 
     var html = jQuery('<div>').html(result); 
     if(html.find("form").attr("id") == "login")//login form found 
     { 
      alert("Trying to login..."); 
      login(); //This just POSTs a username and password 
     }; 
     $('div.content').html(result); 
    }, 
    }); 
} 
+0

Что такое '' # там делает –

+0

Похоже, единственная проблема заключается в 'параметр school', можно закодировать URL-адрес и попробуйте –

+0

Я подозреваю вас путают jQuery-конструктор url, имея два вопросительных знака в URL-адресе. "..? Школа = schoolname # Расписание? ..". Вы имели ввиду амперсанд (&) после расписания? – veritasetratio

ответ

0

Попробуйте кодирующая параметр school

function openUrl() 
{ 
    jQuery.ajax({ 
     url: 'https://mysite.com/WebUntis/index.do', 
     type:'GET', 
     dataType: 'html', 
     data: { 
      school: encodeURIComponent('schoolname#Timetable?'), 
      ajaxCommand: 'renderTimetable', 
      onlyTimetable: 'true', 
      date: '20130418', 
      type: '1', 
      id: '17', 
      formatId: '2', 
      departmentId: '-1', 
      buildingId: '-1' 
     }, 
     success: function(result) { 
      var html = jQuery('<div>').html(result); 
      if(html.find("form").attr("id") == "login")//login form found 
      { 
       alert("Trying to login..."); 
       login(); //This just POSTs a username and password 
      }; 
      $('div.content').html(result); 
     }, 
    }); 
} 
+0

Спасибо за ваш пост! К сожалению, это приводит к ошибке «неправильного школьного имени» ... – Nick46879854