日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接。

發布時間:2023/12/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、問題描述

今天在django中調用ajax時,報錯了:

Exception happened during processing of request from ('127.0.0.1', 7160) Traceback (most recent call last):File "E:\DevelopSoftware\Anaconda3\envs\mxonline\lib\socketserver.py", line 650, in process_request_threadself.finish_request(request, client_address)File "E:\DevelopSoftware\Anaconda3\envs\mxonline\lib\socketserver.py", line 360, in finish_requestself.RequestHandlerClass(request, client_address, self)File "E:\DevelopSoftware\Anaconda3\envs\mxonline\lib\socketserver.py", line 720, in __init__self.handle()File "E:\DevelopSoftware\Anaconda3\envs\mxonline\lib\site-packages\django\core\servers\basehttp.py", line 153, in handleself.handle_one_request()File "E:\DevelopSoftware\Anaconda3\envs\mxonline\lib\site-packages\django\core\servers\basehttp.py", line 161, in handle_one_requestself.raw_requestline = self.rfile.readline(65537)File "E:\DevelopSoftware\Anaconda3\envs\mxonline\lib\socket.py", line 589, in readintoreturn self._sock.recv_into(b) ConnectionAbortedError: [WinError 10053] 你的主機中的軟件中止了一個已建立的連接。

ajax就是普通的jquery中的ajax:

var my_email = {"email":email}; $.ajax({type: "POST",contentType: "application/json; charset=utf-8",headers: { "X-CSRFToken": token_csrf },url: "/myemail/",dataType: "json",cache: false,data: JSON.stringify(my_email),async : true,timeout: 5000,error: function (data) {alert("服務器錯誤!郵件發送失敗!");},success: function (data) {if (null != data && "" != data) {if(data.status == "1"){alert("郵件發送成功,請查收!");}else{alert("郵件發送錯誤!")}}} });

二、處理

平時這么寫也沒報錯,今天這樣寫怎么就報錯了,我就納了悶了。網上查了半天,說是要把異步改成同步,也就是把ajax中的 async:true 改成 async:false。

改了以后發現確實不報錯了,但又出現一個比較嚴重的問題是,使用同步后因為ajax要等后端返回數據,而我后端因為要調用發送郵件的函數,處理的比較慢,因此前端就一直處于假死的狀態。因此這樣改對于我來說還是不能接受的。

然后又查了很多資料,說是使用$.Deferred(); 以及 async/await?異步請求等待返回數據。但是我嘗試后,發現一中的問題又雙叒出現了!又給我報錯了。

?

三、轉機

然后感謝這篇文章:https://www.bbsmax.com/A/ZOJPmXOe5v/

突然明白為什么會報這個錯了,是因為我網頁刷新導致ajax和服務器的連接斷開了!而為什么我的網頁會刷新呢?

?

因為我把這個ajax請求綁在了一個超鏈接a標簽上,

<a href="{% url 'resume:download' %}" class="btn-rounded-white" onclick="disp_prompt()">下載我的簡歷</a>

由于異步的原因,ajax在等待后端返回數據的時候,瀏覽器會繼續往下執行跳轉a的超鏈接的操作,然后就會導致ajax與后端的連接斷開!于是把a標簽改成button標簽,問題解決!!

?

另外,參考:https://blog.csdn.net/BobYuan888/article/details/107871596

button的type有三種:button、reset、submit,如果沒寫type,默認type不是你以為的“button”,而是“submit”,“submit”,“submit”!!!頁面也會被被刷新,因此不要省略type的類型。

?

我這個報錯也算是個個例,不具有普遍性,如果你們不是因為這個原因,那建議你們還是朝第二步的方向去解決。

就寫到這吧。

?

總結

以上是生活随笔為你收集整理的ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。