2017-05-31 60 views
1

我尝试了很多不同的方式,但我无法获得执行的成功块,并且我始终将ajax请求作为错误返回,尽管url是正确的。我的错误说“未定义”。你有什么想法可以尝试吗? 谢谢你的帮助。为什么我的维基百科opensearch ajax请求不能成功返回?

$(document).ready(function() { 
    $("form").submit(function() { 
    var searchTerm = $("#searchterm").val(); 
    var proxy = 'https://cors-anywhere.herokuapp.com/'; 
    var url = "https://en.wikipedia.org/w/api.php?action=opensearch&search=" + 
     searchTerm + "&format=json"; 

    $.ajax({ 
     url: proxy + url, 

     success: function(response) { 
     console.log(response); 
     }, 

     error: function(request, status, error) { 
     console.log(request.responseText); 
     console.log(url); 
     } 
    }); 
    }); 
}); 
+0

你真的有api.php之间''和'行动= ...'换行?这是一个JavaScript语法错误 – Phil

+0

另外,错误是什么意思? – Phil

+0

我不知道。这只是我提交我的(第一个)问题到Stackoverflow时出现的格式错误。不过谢谢你把我的注意力带到了这里! – allisonPlusPlus

回答

2

在您提交的事件处理程序添加:

e.preventDefault(); 

因为,在默认情况下,你的形式取消您的代码并执行表单的提交事件。

希望这有助于你:

$(document).ready(function() { 
 
    $("form").submit(function(e) { 
 
    e.preventDefault(); 
 
    var searchTerm = $("#searchterm").val(); 
 
    var proxy = 'https://cors-anywhere.herokuapp.com/'; 
 
    var url = "https://en.wikipedia.org/w/api.php?action=opensearch&search=" + 
 
     searchTerm + "&format=json"; 
 

 
    $.ajax({ 
 
     url: proxy + url, 
 

 
     success: function(response) { 
 
     console.log(response); 
 
     alert("ok"); 
 
     }, 
 

 
     error: function(request, status, error) { 
 
     console.log(request.responseText); 
 
     console.log(url); 
 
     } 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<form> 
 
    <input id="searchterm" type="text" /> 
 
    <button id="btnSend" type="submit">Send</button> 
 
</form>

+0

这解决了我的问题!非常感谢。 :D – allisonPlusPlus

+0

你的欢迎。 :) –