我遇到了这个奇怪的问题导致控制台在解析
后没有显示输出 a= "<%=j render 'api/restaurants/index.json.jbuilder',restaurants: @restaurants %>";
json = $.parseJSON("<%= render 'api/restaurants/index.json.jbuilder', restaurants: @restaurants %>");
console.log(json);
a= "<%=j render 'api/restaurants/index.json.jbuilder', restaurants: @restaurants %>";
json = $.parseJSON("<%= render 'api/restaurants/index.json.jbuilder', restaurants: @restaurants %>");
console.log("console test");
a= "<%=j render 'api/restaurants/index.json.jbuilder', restaurants: @restaurants %>";
json = $.parseJSON("<%= render 'api/restaurants/index.json.jbuilder', restaurants: @restaurants %>");
console.log(a);
上面的代码片段不会在控制台中呈现任何内容,但下面的代码片段会提供控制台输出。
a= "<%=j render 'api/restaurants/index.json.jbuilder', restaurants: @restaurants %>";
console.log(a);
a= "<%=j render 'api/restaurants/index.json.jbuilder', restaurants: @restaurants %>";
console.log("console test");
似乎解析正在阻止控制台输出任何内容。任何人都有任何想法为什么会发生这种情况以及如何解决它
答案 0 :(得分:0)
如jQuery.parseJSON中所述:
传入格式错误的JSON字符串会导致抛出JavaScript异常。
所以,你的api没有返回正确的json。
示例:
$(function () {
try {
var a = $.parseJSON("{test: 1}");
console.log(a);
} catch(err) {
console.log('Err: ' + err);
}
});
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>