使用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; 
      } 
     } 

所有我想要的任何方法/函数文件是否存在,在这种情况下,状态应该成功或错误的把我送回去给我的反馈。我可以与该工作,如果它会工作... 我没有看到我的错误

+0

我试过使用jQuery,但只要我把它作为我的脚本的src,大多数事情都停止工作,即使它们在此之前是完美无缺的。例如我的run()函数抛出未定义的错误,当src中没有它时,它的工作原理。 – Frank 2013-02-28 13:50:41

似乎是这样的是不可能实现与JavaScript由于相同的原产地政策。

但这就是你所做的所有时候得到的答案:警报!
您的回复是HTML格式文本吗?你想重定向用户还是在网页上显示内容?
Basicaly,你最擅长的是你的回应。更换一个div的内容,例如

document.getElementById("mydiv").innerHTML = xmlhttp.responseText 

或者,您可以更改文件的位置(重定向),或创建一个链接到PDF(我不知道你怎么“显示”的PDF格式,以浏览器插件,作为可下载的对象,或库自动生成PDF格式的HTML和服务,而不是PDF文件?)

+0

它应该将页面重定向到相应的链接,以便可以用浏览器显示pdf。这只是为了一些同学和我自己。 – Frank 2013-02-28 15:11:19