我正在尝试这样做:
http://somehost.net/edit.php?url=http://www.youtube.com/watch?v=EgHY53dOZ-U
禁止
您无权访问此服务器上的edit.php。
有没有办法通过javascript(jquery)解决这个问题,因为我通过ajax调用传递参数。
我试过这种方式却没有成功:
$('#videofrm').load('edit.php?url='+encodeURI($(this).siblings('a').attr('href'))
答案 0 :(得分:1)
您应该修复服务器上的chmoding问题。
你的edit.php在做什么?如果它重定向到其他地方?然后在重定向之前回显结果url。
如果你想要/可以重写.htaccess,你可以关注Tomalak Geret'kal。否则你需要传递没有http://
部分的网址,并在edit.php上添加http://
答案 1 :(得分:0)
如果您无权访问edit.php
,那么您尝试申请的方式无关紧要:您没有权限。
修复服务器上的权限,如果服务器在Linux上,可能使用chmod
。
<强>更新强>
您遇到服务器配置问题。我只能在查询字符串中传递字符串://
时复制问题。
根据this question/answer尝试在httpd配置中编写AllowEncodedSlashes On
。
然后,您需要确保正确编码URI:
http://somehost.net/edit.php?url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv=EgHY53dOZ-U
(您的encodeURI
电话看起来应该照顾该部分)
AllowEncodedSlashes
allows斜杠在查询字符串中出现,只要它们被编码,由于某种原因,默认情况下不。文档说失败会产生404,而不是403,但我仍然认为这就是原因。
如果您无法操作网络服务器的配置选项,则解决方法包括:
http://
的{{1}}的替代术语,您将在PHP脚本中以编程方式还原; http!!!
(而不是http://
或某个本地路径),请将其完全从查询字符串中删除,并将其添加到输入PHP脚本(首选解决方法)。希望有所帮助。