Javascript jqueryurl构造问题
我正在尝试将网站加载到div(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.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:和字符串升级)”谢谢您的帖子!不幸的是,这会导致“无效学校名称”错误。。。