我有一个简单的网站标题getter:
$( 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 - Home",正确的标题。我的问题是,当我输入更具体的网址时,例如www.bbc.co.uk/newsbeat/article/39513521/the-illegal-drugs-with-legal-medical-uses,我的提醒给了我" undefined&# 34 ;.我需要做些什么才能得到这两个" BBC - Home" 和"具有合法医疗用途的非法药物 - BBC Newsbeat"从这个算法?
答案 0 :(得分:0)
您需要对网址进行urlencode
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);
}
});
});
});
根据评论更新。
该网址也不具备该协议,例如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);
}
});
});
});