2017-05-09 120 views
0

我想借此從服務器的一些JSON,但我有錯誤:Ajax jsonp請求。錯誤:jQuery的不叫

Error: jQuery111106328444090202681_1494341431062 was not called 
at Function.error (file:///C:/Users/adm/Documents/temp/WP/wp/www/jquery/jquery-1.11.1.min.js:2:1809) 
at h.jsonp.b.dataTypes.(anonymous function).b.converters.script json (file:///C:/Users/adm/Documents/temp/WP/wp/www/jquery/jquery-1.11.1.min.js:4:27648) 
at Pc (file:///C:/Users/adm/Documents/temp/WP/wp/www/jquery/jquery-1.11.1.min.js:4:18120) 
at x (file:///C:/Users/adm/Documents/temp/WP/wp/www/jquery/jquery-1.11.1.min.js:4:21525) 
at HTMLScriptElement.b.onload.b.onreadystatechange (file:///C:/Users/adm/Documents/temp/WP/wp/www/jquery/jquery-1.11.1.min.js:4:26934) 

使用jQuery 1.11.1 jQuery Mobile的 這是我的js代碼:

function myRequest() { 
    $.ajax({ 
     url: "http://dev.agro.ws/result.json", 
     dataType: 'jsonp', 
     crossDomain: true, 
     error: function(xhr, ajaxOptions, thrownError) { 
      console.log(xhr.status); 
      console.log(thrownError); 
     }, 
     success: function(data) { 
      console.log(data); 
     } 
    }); 
} 

$(document).on("pageinit", "#main", function() { 
    $('#btnDownload').click(function(event) { 
     myRequest(); 
    }); 
}); 

有人可以幫我解決問題嗎?在留言中提到

+0

因爲您無法使JSON成爲JSONP ....您調用的服務器需要支持JSONP。 – epascarello

+0

您的文字圖片[不是很有用](// meta.unix.stackexchange.com/q/4086)。它不能被朗讀或複製到編輯器中,而且它的索引也不是很好,這意味着具有相同問題的其他用戶不太可能在此找到答案。請[編輯]您的文章直接合並相關文本(最好使用複製+粘貼以避免轉錄錯誤)。 –

回答

0

如,你在你的$.ajax要求正在查詢的服務器返回結果以JSON格式而不是JSONP。看看JSON和JSONP Here之間的區別。這裏是僞代碼(PHP)中的一個基本示例,用於檢查請求是否實際上是JSONP

$callback = (isset($_GET['callback']) ? $_GET['callback'] : null); 
if (isset($callback)) 
    echo $callback . '([JSON HERE])'; 
else 
    echo '[JSON HERE]'; 
+0

我需要在服務器上添加一些php腳本,捕獲唯一的函數名並返回JSON。 我理解正確嗎? – l1s4un

+0

它不需要在PHP中。我只是使用PHP作爲我的例子。您將需要一些服務器端語言,可以從URL中讀取參數'callback'。該'callback'參數包含需要在JSONP響應'$ .ajax'請求中使用 – Mic1780

+1

感謝很多jQuery的功能,這一切愚蠢的指南只是介紹如何做客戶端,但你是我的英雄。 – l1s4un