[英]console.log not printing the response
我有一個函數,它通過服務器調用另一個函數,並返回一個要在瀏覽器的日志窗口中打印的字符串,該函數看起來像:
function getErrorInfo() {
setTimeout(function () {
$.getJSON('Get/ErrorInfo', function (responseText) {
console.log("Log: "+responseText);
});
}, 5000);
}
getErrorInfo();
服務器端的函數確實會命中並返回有效的字符串,但瀏覽器的窗口中未顯示任何內容。此外,服務器端的函數每5秒必須命中一次。 但這只會讓他准時,而不會再次。
請在這里解釋我做錯了什么。
您的基本問題是,您需要正確格式化JSON才能獲取任何結果。 您的結果(上述)為:
3/8/2014 5:27:16 PMSystem.NullReferenceException: Object reference not set to an instance of an object. at movie.Models.Genre.GetPosts(Int32 min)
這不僅是異常文本,而且不是有效的JSON。 JSON格式在此處有完整描述 。 建議不要從服務器獲取靜態JSON文件,而應該調用真實的服務。 然后,您知道數據是正確的。
旁注:這里的另一個問題是如何從getJSON
打印OBJECT結果。 當您嘗試使用“ Console.log”打印對象時,會將其轉換為字符串,這可能不會顯示您想要的內容。 您可能應該將日志語句更改為:
console.log(responseText);
至少在chrome中,控制台窗口將讓您瀏覽對象的內容,這可能會很有幫助。 在筆記和上面的解決方案之間,我認為您應該擁有它。 祝你好運!
使用$.getJSON()
,返回結果必須是有效的JSON
字符串,這意味着它必須可解析為對象或數組。 在這種情況下,您可以簡單地使用$.get()
,它將自動檢測返回數據類型,或者使用$.ajax()
並設置dataType: plain
如果您想跳過JSON要求。
關於保持日志運行的第二個問題,您可以從setTimeout()
或回調內部調用getErrorInfo()
,它將繼續運行:
function getErrorInfo() {
setTimeout(function () {
$.getJSON('/echo/json/', function (responseText) {
console.log("Log: "+responseText);
getErrorInfo();
});
}, 5000);
}
getErrorInfo();
在我看來,在這種情況下,它比setInterval()
更好,因為它可以備份並最終導致覆蓋調用,並且錯誤可能會亂序顯示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.