Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jqueryurl构造问题_Javascript_Jquery_Post_Web_Get - Fatal编程技术网

Javascript jqueryurl构造问题

Javascript jqueryurl构造问题,javascript,jquery,post,web,get,Javascript,Jquery,Post,Web,Get,我正在尝试将网站加载到div(div.content)中 该网站需要通过POST登录 javascript尝试加载站点,检测到登录表单的重定向,发布用户名和密码,最后重新加载url,因为身份验证成功 现在的问题是url的构造不正确。url应如下所示: https://mysite.com/WebUntis/index.do?school=schoolname#Timetable? onlyTimetable=true&ajaxCommand=renderTimetable&dat

我正在尝试将网站加载到div(
div.content
)中

该网站需要通过POST登录

javascript尝试加载站点,检测到登录表单的重定向,发布用户名和密码,最后重新加载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);
    },
  });
} 
函数openUrl() { jQuery.ajax({ 网址:'https://mysite.com/WebUntis/index.do?school=schoolname#Timetable?', 类型:'GET', 数据类型:“html”, 数据:{ //学校:'学校名称', ajaxCommand:'renderMetable', onlyTimetable:'true', 日期:“20130418”, 类型:“1”, id:'17', formatId:'2', 部门ID:“-1”, buildingId:“-1” }, 成功:功能(结果){ var html=jQuery(“”).html(结果); if(html.find(“form”).attr(“id”)==“login”)//找到登录表单 { 警报(“尝试登录…”); login();//这只是发布用户名和密码 }; $('div.content').html(结果); }, }); }
尝试对参数进行编码
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);
        },
    });
} 
函数openUrl() { jQuery.ajax({ 网址:'https://mysite.com/WebUntis/index.do', 类型:'GET', 数据类型:“html”, 数据:{ 学校:学校名称(“学校名称#时间表”), ajaxCommand:'renderMetable', onlyTimetable:'true', 日期:“20130418”, 类型:“1”, id:'17', formatId:'2', 部门ID:“-1”, buildingId:“-1” }, 成功:功能(结果){ var html=jQuery(“”).html(结果); if(html.find(“form”).attr(“id”)==“login”)//找到登录表单 { 警报(“尝试登录…”); login();//这只是发布用户名和密码 }; $('div.content').html(结果); }, }); }
这个
#
在做什么?看起来唯一的问题是
school
参数,您可以对它进行url编码,并尝试通过在url中添加两个问号来怀疑您混淆了jQuery url构造函数。“.?学校=学校名称#时间表?”。你的意思是在时刻表之后有一个符号(&)吗?老实说,我真的不知道为什么会有两个问号。这是一个外部网站。但这是唯一一个似乎有效的url…对我之前的评论进行了更正:散列导致了jQuery2.0中的问题。以下注释来自jQuery2.0源代码,出现在ajax函数的开头附近。“//删除散列字符(#7531:和字符串升级)”谢谢您的帖子!不幸的是,这会导致“无效学校名称”错误。。。