2011-02-28 88 views
0

我正在为图像板编写代码,我的用户将能够发布将作为页面加载到css图层中的文本文件。我有一个简单的PHP脚本,它接受一个文件名和一些参数(行和每页的行开始)通过GET,打开通过的文件,并显示为HTML该文件的部分:当jQuery使用ajax调用php脚本时,文件打开导致超时

http://pastebay.com/115710

我可以通过在浏览器中调用该脚本并在url中设置get字符串来确认该脚本的工作原理。

我使用jQuery,通过AJAX调用这个脚本,将一个函数绑定到页面中文本文件的任何链接,这样当点击这些链接时,一个图层打开并且(我想要发生的是)由php文件返回的HTML被倾倒到该层:

http://pastebay.com/115711

当我使用使用文本文件本身调用成功,我可以将文本文件的内容加载到该层相同的AJAX调用。

当我打电话通过AJAX php文件,我得到当PHP文件从未打开过的文本文件如下回应:

Blockquote Warning: file(http://localhost/kusabax/lit/src/nrd.txt) [function.file]: failed to open stream: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in C:\xampp\xampplite\htdocs\kusabax\textview.php on line 6 Fatal error: Maximum execution time of 60 seconds exceeded in C:\xampp\xampplite\htdocs\kusabax\textview.php on line 6

不管问题是什么,它与试图打开文本文件本身 - 如果我使用fopen()或file()的结果是一样的,并没有这一行脚本运行正常(除非没有,显然,任何有用的结果除外。)

我还应该提到,我试图写入iframe到#prevwin图层并将php脚本加载到iframe中,并将get属性写入src字符串(甚至不使用AJAX我) - 但我仍然有相同的超时时间。

回答

0

我想我解决了它。

将文件名作为绝对URL发送到php脚本是问题所在。我编辑的JavaScript通过分割HREF串并考虑当前文件夹和文件名,建立一个新的URL的URL字符串更改为相对URL:

s = this.href; 
a = s.split("/"); 
board = a[4]; 
src = a[a.length-1]; 
relhref="./"+board+"/src/"+src; 

,然后通过relhref到AJAX功能。

相关问题