Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django应用程序中的API调用问题_Python_Ajax_Django - Fatal编程技术网

Python Django应用程序中的API调用问题

Python Django应用程序中的API调用问题,python,ajax,django,Python,Ajax,Django,我正在Django应用程序中进行一个简单的API调用,但我遇到了一些问题 以下是ajax调用: $.ajax({ type: "GET", url: "/query/", success: function (data) { alert(data); } }); 以下是调用API的函数: def query(request): response = requests.get("http://api.open-notify.org/iss-

我正在Django应用程序中进行一个简单的API调用,但我遇到了一些问题

以下是ajax调用:

$.ajax({
    type: "GET",
    url: "/query/",
    success: function (data) {
        alert(data);
    }
});
以下是调用API的函数:

def query(request):
    response = requests.get("http://api.open-notify.org/iss-now.json")
    return JsonResponse(response.status_code, safe=False)
这只在每隔一次触发时起作用,一次失败一次成功。当它失败时,不会捕获任何异常。以下是故障后输出窗口中显示的内容

The thread 0x2008 has exited with code 0 (0x0).
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 138, in run
self.finish_response()
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 180, in 
finish_response
self.write(data)
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 274, in write
self.send_headers()
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 332, in 
send_headers
self.send_preamble()
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 255, in 
send_preamble
('Date: %s\r\n' % format_date_time(time.time())).encode('iso-8859-1')
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 453, in 
_write
result = self.stdout.write(data)
File "C:\Program Files\Python36\lib\socketserver.py", line 775, in write
self._sock.sendall(b)
ConnectionAbortedError: [WinError 10053] An established connection was 
aborted by the software in your host machine
[27/Jul/2017 13:56:15] "GET /query/ HTTP/1.1" 500 59

Exception happened during processing of request from ('127.0.0.1', 56126)
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 138, in run
self.finish_response()
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 180, in 
finish_response
self.write(data)
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 274, in write
self.send_headers()
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 332, in 
send_headers
self.send_preamble()
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 255, in 
send_preamble
('Date: %s\r\n' % format_date_time(time.time())).encode('iso-8859-1')
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 453, in 
_write
result = self.stdout.write(data)
File "C:\Program Files\Python36\lib\socketserver.py", line 775, in write
self._sock.sendall(b)
ConnectionAbortedError: [WinError 10053] An established connection was 
aborted by the software in your host machine

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 141, in run
self.handle_error()
File "D:\Dropbox\Django Projects\DjangoMOA\environment\lib\site-
packages\django\core\servers\basehttp.py", line 88, in handle_error
super(ServerHandler, self).handle_error()
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 368, in 
handle_error
self.finish_response()
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 180, in 
finish_response
self.write(data)
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 274, in write
self.send_headers()
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 331, in 
send_headers
if not self.origin_server or self.client_is_modern():
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 344, in 
client_is_modern
return self.environ['SERVER_PROTOCOL'].upper() != 'HTTP/0.9'
TypeError: 'NoneType' object is not subscriptable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Program Files\Python36\lib\socketserver.py", line 639, in 
process_request_thread
self.finish_request(request, client_address)
File "C:\Program Files\Python36\lib\socketserver.py", line 361, in 
finish_request
self.RequestHandlerClass(request, client_address, self)
File "C:\Program Files\Python36\lib\socketserver.py", line 696, in __init__
self.handle()
File "D:\Dropbox\Django Projects\DjangoMOA\environment\lib\site-
packages\django\core\servers\basehttp.py", line 155, in handle
handler.run(self.server.get_app())
File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 144, in run
self.close()
File "C:\Program Files\Python36\lib\wsgiref\simple_server.py", line 35, in 
close
self.status.split(' ',1)[0], self.bytes_sent
AttributeError: 'NoneType' object has no attribute 'split'

The thread 0x420 has exited with code 0 (0x0).
我在postman中测试了URL,每次都收到了回复,没有问题


如果您有任何建议或想法,我们将不胜感激。

请设法弄清真相。看起来页面正在重新加载并导致“ConnectionAbortedError”

我将调用嵌套在.submit函数中,该函数需要

event.preventDefault();
添加到末尾。完整的工作代码现在看起来像这样

$("#form").submit(
    function () {
        $.ajax({
            type: "GET",
            url: "/query/",
            success: function (data) {
                alert(data);
            }
        });
        event.preventDefault();
    }

);

希望这对其他人有所帮助:)

try response。['status\u code']我不确定我花了多长时间来研究这个问题的JavaScript,我发誓这是Python写的。这正是我为同样的问题所需要的!!!感谢您回来并发布您的答案/修复!这件事让我挠头好几个小时了!