我有一个简单的网站标题获取器:
$( document ).ready(function() {
$("#title").click(function() {
var SubURL = $("#input").val();
$.ajax({
url: "http://textance.herokuapp.com/title/"+SubURL+"/",
complete: function(data) {
alert(data.responseText);
}
});
});
}(;
它的工作方式是您在$("#input"(字段中输入网站的URL,此代码将弹出带有网站标题的警报。例如,在字段中输入 www.bbc.co.uk 将提醒您正确的标题"BBC - 主页"。我的问题是,当我输入更具体的 url 时,例如 www.bbc.co.uk/newsbeat/article/39513521/the-illegal-drugs-with-legal-medical-uses 我的警报会给我"未定义"。我需要做什么才能从这个算法中获得"BBC - 家庭">和"具有合法医疗用途的非法药物 - BBC Newsbeat"?
你需要对网址进行编码
http://textance.herokuapp.com/title/www.bbc.co.uk%2Fnewsbeat%2Farticle%2F39513521%2Fthe-illegal-drugs-with-legal-medical-uses%2F
您可以使用encodeURIComponent
$( document ).ready(function() {
$("#title").click(function() {
var SubURL = encodeURIComponent( $("#input").val() );
$.ajax({
url: "http://textance.herokuapp.com/title/"+SubURL+"/",
complete: function(data) {
alert(data.responseText);
}
});
});
});
根据评论更新。
url 也不能有协议,就像 http://
一样,所以通过此更新,添加了.replace(/(^w+:|^)///, '')
,如果存在,您将被删除。
$( document ).ready(function() {
$("#title").click(function() {
var SubURL = encodeURIComponent( $("#input").val().replace(/(^w+:|^)///, '') );
$.ajax({
url: "http://textance.herokuapp.com/title/"+SubURL+"/",
complete: function(data) {
alert(data.responseText);
}
});
});
});