我有这个功能负责为我所在的当前环境生成HTTP URL。当我在我的localhost上工作时,该函数返回如下内容:
http://localhost/mysite
在制作时,它应该只返回我的网站域名,如:
http://mywebsite.org
事实并非如此。这个功能部分工作,我不明白为什么。我使用此函数将AJAX表单提交到我的网站周围的PHP脚本,但是,当我尝试使用此函数将用户重定向到应该包含完整HTTP URL的特定位置时,它会将我发送到localhost URL。
这是我写的函数:
function generate_site_url()
{
var domain = window.location.origin;
if (domain.indexOf('localhost'))
{
return 'http://localhost/mysite/';
}
else
{
return 'http://mywebsite.org/';
}
}
这是重定向功能导致错误的重定向问题:
function redirect(to, mode, delay, internal)
{
mode = (typeof mode === "undefined") ? 'instant' : 'header';
delay = (typeof delay === "undefined" || delay === null) ? 0 : delay;
internal = (typeof internal === "undefined" || internal === true) ? true : false;
if (to)
{
to = ((internal) ? generate_site_url() : '') + to;
}
else
{
to = currentLocation();
}
setTimeout(function(){
window.location = to;
}, delay);
}
这是导致问题的redirect
的示例用法:
redirect('admin/index', 'header', 3000);
上面的函数调用是将我发送到http://localhost/mysite/admin/index
,即使我正在制作中并且我的域名案例应该适用。
它出了什么问题?我似乎无法弄明白。
答案 0 :(得分:2)
更改
if (domain.indexOf('localhost'))
要
if (domain.indexOf('localhost') != -1)
或者
if (~domain.indexOf('localhost'))