我有一个 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/