尽管我之前发现过有类似问题的帖子,但我想提出一个问题,我现在已经困扰了好几个小时但似乎无法解决。
在网站上,其网址由mod重写模块重写:
www.domain.com/index.php?page=one
变为
www.domain.com/one/
我正在使用JQUERY和相对网址>>>>
发出AJAX请求$.get('views/ajax_page.php', { }, function(data) {
alert(data);
});
显然没问题,只要浏览器地址栏中的网址是www.domain.com,但是当GET变量'页面'如果不为null,则脚本无法找到文件ajax_page.php并抛出AJAX错误" 404 not found"。
我知道我可以通过在AJAX请求中使用绝对URL来解决这个问题,但是因为当访问者在键入网站时省略了协议时,同源策略会导致浏览器抛出HTTP错误0在地址栏中的地址,这也不是水密的。
解决上述任何一个问题的最佳方法是什么,或者更好的是,两者兼而有之? 非常感谢您的支持。
答案 0 :(得分:2)
是您网站根目录下的文件夹视图吗?
如果是这样,请在视图前添加斜杠:
$.get('/views/ajax_page.php', { },
function(data) {
alert(data);
});
如果没有,我建议用你的ajax请求调用当前页面并设法在你的后端调用ajax文件......
此外,请确保您的htaccess在重定向之前访问文件:
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
答案 1 :(得分:0)
使用相对路径时,将base tag添加到您的html网站标题总是明智的:
<base href='http://www.your-site-address-here.com'/>