[英]Javascript AJAX call to SpringBoot controller and getting response in JSON
[英]Not getting json response in ajax call
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
function fn(){
$.ajax({
type:'GET',
url: "http://www.enquiry.indianrail.gov.in/ntes/NTES",
data: "action=getTrainForDate&trainNo=16649&trainStartDate=11/04/2014&t=1397216860215&18q1xp3lm5=1ptur1oxbz1i5vwea0u61397214250740",
dataType: "json",
success:function(data){
alert(data);
}
});
}
</script>
</head>
<body>
<a href="#" onclick="fn();"> hi </a>
</body>
</html>
您請求的 URL 返回(function(){location.reload();})()
,它不是 JSON、JSONP 或任何形式的有用數據。
只是為了更新你需要使用jsonp
而不是json
因為否則你會得到 CORS 錯誤。 更新的代碼是
$.ajax({
type:'GET',
url: "http://www.enquiry.indianrail.gov.in/ntes/NTES",
data: {"action" : "getTrainForDate", "trainNo" : "16649", "trainStartDate" : "11/04/2014", "t" : "1397216860215", "18q1xp3lm5" : "1ptur1oxbz1i5vwea0u61397214250740"},
dataType: "jsonp",
success:function(data){
alert(data);
}
});
請注意,您將數據作為字符串發送的方式沒有任何問題,我只是更喜歡對象方式。 現在,當您撥打電話時,您最終會收到此消息(而不是數據)
Resource interpreted as Script but transferred with MIME type text/plain: "http://www.enquiry.indianrail.gov.in/ntes/NTES?callback=jQuery2119973546624…1397216860215&18q1xp3lm5=1ptur1oxbz1i5vwea0u61397214250740&_=1397220999300".
這就是問題所在。 如果你點擊形成的 URL,它會給你 JavaScript 函數作為響應,而不是數據。 這是你得到的回應
(function(){location.reload();})()
我認為,對於每個請求,服務器都需要唯一的令牌(由"18q1xp3lm5" : "1ptur1oxbz1i5vwea0u61397214250740"
標識"18q1xp3lm5" : "1ptur1oxbz1i5vwea0u61397214250740"
集)。 如果不滿足條件,則向瀏覽器發送重新加載請求。
由於調用是通過 AJAX 進行的,因此無法重新加載頁面,但由於重用令牌,因此沒有結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.