2017-05-31 63 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

你的歡迎。 :) –