Ajax / jQuery网站标题getter仅部分工作

时间:2017-04-08 08:46:47

标签: javascript jquery html ajax heroku

我有一个简单的网站标题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"从这个算法?

1 个答案:

答案 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);
      }
    });
  });
});