使用JavaScript将网站转发到另一台服务器上的pdf文件
我相对比较新的HTML,JS等。直到现在我在一个“包含”环境中工作的网站,我只访问自己的资源,或者如果我做了其他人, d总是有一个硬编码的链接。使用JavaScript将网站转发到另一台服务器上的pdf文件
我的大学在线提供班级和日期的在线报告。 pdf总是保存在以下格式../onxx-yyyy-ww.pdf
我想创建一个网站,一旦请求上课,然后将其保存在一个cookie中,然后每次您访问该网站它会按照当前时间表将您转到PDF文件。 我发现这可以通过一种叫做AJAX的东西来实现,我对此一无所知。这是多远我来:
JS部分(不含getWeek()由尼克Baicoianu):
window.onload = function(){
checkCookie();
}
function checkCookie(){
if(document.cookie!=''){
forwarding();
}
}
function forwarding(){
alert('Forwarding...');
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(xmlhttp.responseText);
}
}
var todayDate = new Date();
var weekDate = todayDate.getWeek();
a = document.cookie;
cookiename = a.substr(0,a.search('='));
cookiewert = a.substr(a.search('=')+1,a.search(';'));
if(cookiewert == '')
{cookiewert = a.substr(a.search('=')+1,a.length);}
if(cookiewert<10){
cookiewert= "0" + cookiewert;
}
for (var w=weekDate;w>0;w--){
xmlhttp.open("GET","http://pollux.dhbw-mosbach.de/cmos_extern_kurs_ext/"+cookiewert+"-"+todayDate.getFullYear()+"-"+w+".pdf",true);
xmlhttp.send();
}
}
function run(){
var d = new Date();
d = new Date(d.getTime() +1000*60*60*24*365*5); // 5 Jahre Cookie
document.cookie = 'class='+document.getElementById('class').value+'; expires='+d.toGMTString()+';';
forwarding();
}
HTML:显示
<body>
<select id="class">
<option value="on09">on09</option>
<option value="on10">on10</option>
<option value="on11a">on11a</option>
<option value="on11b">on11b</option>
<option value="on12">on12</option>
</select>
<button onclick="run()">Weiter</button>
</body>
我转发警报,但后来什么更多发生,我无能为力。 如果除了我的问题之外,您还有我的代码反馈,我会很乐意接受它。
我要吃午饭了,所以需要一段时间才能回复。 Thx的帮助!
编辑:
我把一切都用jQuery工作到哪里,如果被请求的文件存在,它可以检索的信息点。什么都没发生。也许这是我的代码中的错误,但在控制台中它没有说什么。还做了我发现在jQuery的API的get() http://api.jquery.com/jQuery.get/
由于浏览器的安全限制,大多数“Ajax”的请求都受到同源策略;该请求无法成功从不同的域,子域或协议中检索数据。
而且这是我的新的转发():
function forwarding(){
alert('Forwarding...');
var todayDate = new Date();
var weekDate = todayDate.getWeek();
a = document.cookie;
cookiename = a.substr(0,a.search('='));
cookiewert = a.substr(a.search('=')+1,a.search(';'));
if(cookiewert == '')
{cookiewert = a.substr(a.search('=')+1,a.length);}
alert('http://pollux.dhbw-mosbach.de/cmos_extern_kurs_ext/'+cookiewert+'-'+todayDate.getFullYear()+'-'+singleWeek(weekDate)+'.pdf');
for (var w=weekDate;w>0;w--){
$.ajax({
type: 'HEAD',
url: 'http://pollux.dhbw-mosbach.de/cmos_extern_kurs_ext/'+cookiewert+'-'+todayDate.getFullYear()+'-'+singleWeek(weekDate)+'.pdf',
crossDomain: true,
success: function() {
document.location = "http://pollux.dhbw-mosbach.de/cmos_extern_kurs_ext/"+cookiewert+"-"+todayDate.getFullYear()+"-"+singleWeek(weekDate)+".pdf";
},
error: function() {
alert("Unable to connect to secure checkout.");//TODO: remove when success is working
return false;
}
});
}
function singleWeek(weekDate){
if (weekDate<10){
weekDate = "0"+weekDate;
}
return weekDate;
}
}
所有我想要的任何方法/函数文件是否存在,在这种情况下,状态应该成功或错误的把我送回去给我的反馈。我可以与该工作,如果它会工作... 我没有看到我的错误
似乎是这样的是不可能实现与JavaScript由于相同的原产地政策。
但这就是你所做的所有时候得到的答案:警报!
您的回复是HTML格式文本吗?你想重定向用户还是在网页上显示内容?
Basicaly,你最擅长的是你的回应。更换一个div的内容,例如
document.getElementById("mydiv").innerHTML = xmlhttp.responseText
或者,您可以更改文件的位置(重定向),或创建一个链接到PDF(我不知道你怎么“显示”的PDF格式,以浏览器插件,作为可下载的对象,或库自动生成PDF格式的HTML和服务,而不是PDF文件?)
它应该将页面重定向到相应的链接,以便可以用浏览器显示pdf。这只是为了一些同学和我自己。 – Frank 2013-02-28 15:11:19
我试过使用jQuery,但只要我把它作为我的脚本的src,大多数事情都停止工作,即使它们在此之前是完美无缺的。例如我的run()函数抛出未定义的错误,当src中没有它时,它的工作原理。 – Frank 2013-02-28 13:50:41