使用JavaScript将网站转发到另一个服务器上的pdf文件
Forwarding website to pdf file on another server using JavaScript
我对html, js等相对陌生。到目前为止,我在一个"包含"环境的网站上工作,我只访问我自己的资源,或者如果我访问其他人,我总是有一个硬编码的链接。
我的大学通过输入班级和日期提供在线课程表。pdf文件总是以以下格式保存:/onxx-yyyy- www .pdf
我想创建一个网站,一旦要求类,然后保存在一个cookie,从那时起,每次你访问这个网站,它会把你转发到pdf文件与当前的时间表。我发现这可以通过一种叫做AJAX的东西来实现,而我对此一无所知。这就是我所取得的成就:
js部分(不包括getWeek() by Nick baiicoianu):
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>
显示了我的转发警报,但随后什么也没发生,我毫无头绪。如果你对我的代码有反馈,除了我的问题,我很乐意接受。
我要去吃午饭了,所以我需要一段时间才能回复。谢谢你的帮助!
编辑:我让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;
}
}
所有我想要的是任何方法/函数给我反馈,如果文件存在,在这种情况下,状态应该发送我成功或错误回来。如果可行的话,我可以这样做……我没看错
但是当你得到答案时,你所做的就是:警报!
你的回复是html格式的文本吗?您想要重定向用户还是在页面上显示内容?
基本上,你应该做些事情来回应。替换div的内容,例如
document.getElementById("mydiv").innerHTML = xmlhttp.responseText
或者,您可以更改文档的位置(用于重定向),或创建一个链接到pdf(我不确定您如何"显示"pdf,使用浏览器插件,作为可下载对象,或库自动生成html从pdf并提供此而不是pdf文件?)
由于同源策略,这似乎是不可能用JavaScript实现的。
- Telerik剑道ui图纸导出PDF发送到服务器
- 使用节点生成PDF服务器端
- 谷歌驱动器pdf没有正确上传到s3服务器
- jQuery:通过ajax将pdf发送到服务器
- PDF.js:从另一台服务器读取文件
- 如何将 html 页面的一部分保存到客户端 (javascript) 或服务器端 asp.net 的图像或 pdf
- 如何生成以 PDF 形式在服务器上运行的页面
- 在 pdf.js 库中,哪个文件调用 read_pdf 函数将 pdf 的数据从服务器端获取到客户端
- 将网页转换为PDF并将其保存在服务器中 - JS或PHP
- 在向网络服务器提交 pdf 时发送 HTTP Basic-Auth 标头信息
- 将服务器端生成的 PDF 发送到浏览器
- jQuery print iframe pdf 适用于本地主机,但不适用于服务器
- 服务器生成了带有长帖子内容的 PDF angularjs
- 浏览器请求文件,服务器下载 pdf,浏览器在 iframe 中显示 pdf
- 将PDF文件从Node.js服务器保存到PhoneGap应用程序
- 如何通过ajax调用将pdf下载到nodejs服务器
- 我们可以将AngularJS客户端的PDF文件发送到NodeJS服务器吗
- 将画布数据URL导出为PDF--如何?DataURL太长,无法传递到服务器
- 在IE中部署到不同服务器时,PDF.js不起作用
- 从服务器下载PDF到客户端机器