我有两个锚标记,如下所示
<a href="www.exx.com" target="_blank">
AnnualBudget</a>
当我点击上面的Anchor标签时,它没有正确的URL(因为它已经转到Mydomainname / www.exx.com )。但同时在锚标签下工作并转到正确的网址。
<a href="https://www.exx.com" target="_blank">
AnnualBudget</a>
为什么www无效但https有效??我怎样才能解决这个问题?
更新:
答案 0 :(得分:5)
尝试将“http://”放在前面。
即
<a href="http://www.exx.com" target="_blank">AnnualBudget</a>
“www”不是协议/方案。 HTTPS或HTTP是协议。
绝对网址必须在前面有“方案”,请参阅details about URLs on Wikipedia。
或者,这也可以:
<a href="//www.exx.com" target="_blank">AnnualBudget</a>
更新1:
由于您评论您的输入来自用户,请允许我添加以下内容:
(虽然这指的是SQL injection,所有用户输入也是如此。
更新2:
要检查绝对URL的输入,请执行以下操作:
// Read from user input, e.g. (WebForms syntax!):
string my = MyTextBox.Text.Trim();
// Do some checking (this has be done much more thoroughly in real-life!)
if ( !my.StartsWith("http://") && !my.StartsWith("https://") )
{
my = "http://" + my;
}
// Do something with "my", e.g. (again, WebForms syntax only):
MyHyperLink.NavigateUrl = my;
(请注意我不是MVC专家,上面的伪代码使用WebForms语法代替)