javascript - 当 Infinity 位于响应中时,jQuery $.get 响应不同

标签 javascript jquery

我有一个 API,它返回两个数字作为响应。例如,如果我这样称呼

$.get('/api/get_limit/').always(function(data) { console.log(data.responseText); });

我希望在控制台中看到类似的内容

Object {absolute_limit: 389, concurrent_limit: 999}

这就是我得到的,除非这些数字之一是无穷大。在这种情况下,当我发出相同的请求时,控制台将显示

Object {readyState: 4, responseText: "{"absolute_limit":Infinity,"concurrent_limit":999.0}", status: 200, statusText: "OK"}

我检查过,API 在这两种情况下都按预期工作。

我的问题是为什么会发生这种情况,有没有办法可以解决这个问题而不用 -1 之类的东西替换 Infinity?

编辑:

借助 Django Rest Framework 生成 API 的 Django 代码

class QueriesLimit(APIView):
    def get(self, request, format=None):
        limit = request.user.concurrency_limit()
        abs_limit = request.user.available_queries()
        return Response({'concurrent_limit': limit, 'absolute_limit': abs_limit})

最佳答案

原因

{
    "absolute_limit": Infinity,
                      ^^^^^^^^
    "concurrent_limit": 999.0
}

不是 json 对象

关于javascript - 当 Infinity 位于响应中时,jQuery $.get 响应不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32049233/

相关文章:

javascript - putState() 和 putPrivateData() 可以在同一个链代码中使用吗?

javascript - 如何将特定类添加到通过 ajax 加载的附加 LI 中?

javascript - Thinkster MEAN Stack Tutorial 路由问题

javascript - 如何编写可测试的 requirejs 模块

javascript - 在 do/end block 中禁用 Rails form_for 提交按钮

jquery - 模式弹出窗口 (div) 的关闭按钮(div 包含在其中)未完全显示

javascript - 您如何摆脱 <div> 点击时弹出的随机 "pressed"类?

php - JSON 结果用于选择选项

javascript - 在选中的收件箱上,它不会滚动到带有 id 框的下一个 div

javascript - 如何将两个或多个对象的内容合并到第一个对象中