簡體   English   中英

在ajax調用中沒有得到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM