我正在尝试学习如何使用JQuery调用API。我创建了一个小函数来更改div(class="quote-box"
)内的文本。该函数似乎在大多数情况下都能正常工作。点击#newQuote
按钮可将div中的文字更改为Didn't work
。
但是,中间的.getJSON
根本不做任何事情。我希望此代码将文本更改为“Yay。”,但它拒绝在function(json){ }
块内执行任何操作。
- 删除旧代码 -
非常感谢任何帮助。
编辑: 这似乎与上述问题不完全相同,因为即使删除所有变量,函数仍会继续失败。
$("#newQuote").on("click", function(){
$.getJSON("http://api.forismatic.com/api/1.0/?method=getQuote&lang=en&format=json", function(json){
$(".quote-box").html("Yay");
});
});
编辑2: 解决了。 forismatic API不喜欢https。切换到普通的http会使一切正常。
答案 0 :(得分:4)
因为getJSON是一个异步调用,这意味着你之后的代码不会等待System.Diagnostics.Trace.TraceInformation("My trace statement");
System.Diagnostics.Trace.TraceWarning("My warning statement");
System.Diagnostics.Trace.TraceError("My error statement");
完成继续。
要解决此问题,请在getJSON
$(".quote-box").html(outputString);
getJSON