我无法通过点击按钮获取我的$ .ajax请求

时间:2018-03-13 03:59:17

标签: jquery ajax onclick

我检查了我的变量,它们都按预期出现,如果我将它粘贴到.on()事件之外,则ajax请求有效。然后,如果我只是将相同的请求发布到我的.on()中,那么它就会崩溃。任何帮助将不胜感激。

    $(document).ready(function(){
    var searchData;
    var titles;
    var descriptions;
    var websites;

    $(".clicked").on("click", function() {  
      var keyword = document.querySelector('#search').value; 
      // This alert succeeded
      alert(keyword);
      var apiURL = "https://en.wikipedia.org/w/api.php?action=opensearch&format=json&search=" + keyword + "&namespace=0&limit=10";
      // This alert succeeded and returned correct concat
      alert(apiURL);
      $.ajax({
        url: "https://en.wikipedia.org/w/api.php?action=opensearch&format=json&search=" + keyword + "&namespace=0&limit=10",
        dataType: 'jsonp',
        type: 'POST',
        success: function(data) {
            // This alert fails
            alert("did this work?")
            searchData = data;
            titles = searchData[1];
            descriptions = searchData[2];
            websites = searchData[3];
            for (i=1; i<titles.length; i++) {
                $("body").append("<div class=\"query\"><a href=" + websites[i] + "\"><h1>" + titles[i] + "</h1><p>" + descriptions[i] + "</p></a></div>");
            }
        }
    });
});
});

2 个答案:

答案 0 :(得分:0)

请验证以下内容

1)确保选择器正确。

2)如果可点击内容由ajax函数加载,则尝试实时点击功能。

3)您可以通过浏览器开发工具中的网络选项跟踪它是否已启动。

答案 1 :(得分:0)

我仍然不太清楚为什么会这样,但我在e.preventDefault();电话之前直接添加$.ajax并且它有效。