$.ajax的post請求不好使了?

2021-03-02 web前端教室

這幾天在開發在線學習平臺的過程,遇到這樣的問題,先看js代碼,很簡單的點擊按鈕,觸發ajax

但是問題是,success裡的回調根本就不執行,百般修改也沒反應。再看php代碼,

到後來已經被我簡化為只有一句echo做為返回值了,但這時依然不執行,這時我意識到,即不是js的問題,也不是php的問題,那麼問題應該定位在協議或數據方面。後來我把js代碼中的data去掉,變成這樣,

現在只有一個單純的post請求而已

但即這樣,依然沒有執行success,這時我更加確定,就是http請求頭方面的問題。在網上反覆查找php接收數據時的請求頭方面的資料,終於確定,問題原因是,請求頭的 header 裡的Content-Type的問題。

Content-Type的值有以下幾種,

text/xml (xml 數據格式)
text/html (html 數據格式)
text/plain (無格式字符串數據格式)
multipart/form-data (上傳文件)
application/json (json 數據格式)
application/x-www-form-urlencoded(序列化數據的)

第一種xml格式肯定用不上;第二種html格式也不對;第三種無格式也不對;第四個是上傳表單的,用不上;

估計情況就是第五個、第六個。直接說結果了,(既然$.ajax用不了,那就直接XMLHttpRequest對象)看代碼,

JavaScript代碼:

PHP代碼:

解決了。

這個在線學習平臺說起來簡單,但這一路開發過來,踩進去的坑有很多,就這樣繼續吧,成功的路從來都是曲折的。

最後是廣告時間,如果想要轉行或提高前端技術的同學,可以看一下web前端提高班的課程,

如果覺得本文對你有用,請幫忙轉發,並點讚,謝謝。

覺得有幫助,就讚賞

相關焦點

  • jQuery的$.get()、$.post()和$.ajax()以GET/POST方式請求數據
    ,如get、post、put、deletet等,但是最常用的是獲取數據和提交數據,獲取數據是get請求,提交數據是post請求。$.ajax()方法不僅可以POST方式請求,還可以GET方式請求。,還可以使用$.ajax()方法對伺服器進行異步和同步請求數據。
  • 使ajax請求自動帶上cookie
    ajax請求無論是否跨域,默認請求頭中都是不會自動帶上cookie信息的。如果需要ajax請求自動在請求頭中帶上cookie信息,需要所訪問的伺服器允許這樣的操作。瀏覽器發送預檢請求獲取到響應頭中有這個欄位,則認為伺服器允許在發送ajax請求時自動帶上cookie信息。伺服器允許這樣的操作後,那麼前端發送ajax請求的時候,就需要進行這樣的操作。jquery的ajax請求中設置withCredentials=true即可。
  • 原生Ajax和jquery的ajax有什麼區別?
    主要內容ajax是什麼ajax作用原生ajax請求jquery的ajax請求它依賴現有的CSS/HTML/JavaScript,而其中最核心的依賴是瀏覽器提供的XMLHttpRequest對象,是這個對象使得瀏覽器可以發出HTTP請求與接收HTTP響應。實現了在頁面不刷新個情況下和伺服器進行數據交互。異步的javascript和xml AJAX 是一種用於創建快速動態網頁的技術。
  • jQuery - AJAX post() 方法
    jQuery $.post() 方法$.post() 方法通過 HTTP POST 請求向伺服器提交數據。語法:$.post(URL,data,callback);必需的 URL參數規定您希望請求的 URL。
  • JSON&AJAX
    這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新,提升用戶的體驗。傳統的網頁(不使用 Ajax)如果需要更新內容,必須重載整個網頁頁面。2.異步和同步異步和同步:客戶端和伺服器端相互通信的基礎上3. AJAX缺陷AJAX 大量使用了 Javascript 和 AJAX 引擎,而這個取決於瀏覽器的支持。
  • Ajax學習筆記
    GET請求//1.創建xhr請求var xhr = createXhr();//2.創建請求 - open()xhr.open('GET',url,asyn[true|false])//3.設置回調函數 - onreadystatechangexhr.onreadystatechange = function(){
  • AJAX筆記分享
    請求報文行 POST或GET /s?安裝nodemon服務方法(自動重啟js的服務)•需要已經安裝nodejs程序•右鍵需要安裝的js打開終端•輸入 sudo npm install -g nodemon(win不需要輸入sudo)•之後需要開啟自動重啟功能,輸入nodemon server.js 即可5.HTML端的設置1.
  • 記錄springboot接收post和get兩種方式提交數據的不同方法
    本文著重描述下服務端接收不到請求參數的情況,對服務端接收不到請的問題,暫不詳細講解。如有讀者需要請留言,視大家的對問題的關注度定是否在近期做記錄。問題一的主要原因是因做的是前後端分離的移動項目,手機端請求伺服器時存在跨域問題。需要在伺服器端做跨域方面的處理。後端伺服器才可以接收到移動端發送的請求。
  • 前端跨域請求原理及實踐
    一般的,只要網站的 協議名protocol、 主機host、 埠號port 這三個中的任意一個不同,網站間的數據請求與傳輸便構成了跨域調用。這也是我們下面實踐的理論基礎。我們利用 NodeJs 創建了兩個伺服器,分別監聽 3000、 3001 埠(下面簡稱 伺服器3000 與 伺服器3001 ),由於埠號不一樣,這兩個伺服器以及伺服器上頁面通信構成了跨域請求。
  • 前端ajax或axios發送數據後端實體類接受(實例和報錯原因)
    檢查ajax的type是post還是get,然後去看後臺是否對應寫錯了。檢查ajax的url地址是否寫對,再去看後臺接受的url地址。檢查ajax的dataType是什麼類型?一般是json。ajax不能傳後臺沒有的參數,或者實體中沒有的成員變量。還有就是,這句是小喵在別人的博客上看到的一段:@RequestBody接收的是一個Json對象的字符串,而不是一個Json對象。在ajax請求往往傳的都是Json對象,用 JSON.stringify(data)的方式就能將對象變成字符串。
  • HTTP POST請求步驟詳解
    HTTP POST請求是使用post方式提交http請求,來獲取數據。該步驟有「常規」、「欄位」兩個標籤頁。「常規」標籤頁配置信息如圖1所示。
  • jsonp實現百度搜索 封裝ajax框架
    注意:- jsonp只針對get請求。script標籤的 src屬性本質就是向伺服器發送get請求。i++){ let data = arg.g[i].q; let li = `<li>${data}</li>` $('.show').append(li); } }封裝一個ajax
  • 用JavaScript發出HTTP請求的不同方法
    全文共2678字,預計學習時長15分鐘使用JavaScript時,總會有各種需要發出調用請求的情況,進行ajax調用什麼技術更適合呢?該庫在不久前被廣泛用於發出HTTP異步請求。· 社區的知名庫· 發出HTTP請求的無縫接口· 出現故障時支持重試請求缺點:· 它不支持以XMLHttpRequest的形式監視加載進度
  • 【vue2.0進階】用axios來實現數據請求,簡單易用
    已有的用戶可以繼續使用, 但以後不再把 vue-resource 作為官方的 ajax 方案。這裡可以去掉 vue-resource,文檔也不必翻譯了。前端君為大家總結幾個關鍵點:    1.  維護成本與其價值相比不划算    2.  其他插件也能滿足同等開發需求    3.
  • 必須知道的get和post的區別
    這個問題幾乎面試的時候都會問到,是一個老生常談的話題,然而隨著不斷的學習,對於以前的認識有很多誤區,所以還是需要不斷地總結的,學而時習之,不亦說乎
  • python接口自動化2-發送post請求
    前言發送post的請求參考例子很簡單,實際遇到的情況卻是很複雜的,首先第一個post請求肯定是登錄了,但登錄是最難處理的。
  • 問題回答:Http 請求的Post 和Put 的區別
    群友不知道哪裡找來的通俗解釋大家對這個問題看法各異,查到的資料也都不一樣。那麼到底Http 請求的 post 和 put的區別是什麼呢?特別提一下,我們不能把一些中文資料裡的通俗解釋當作標準答案。但實際上, http 請求的 post 和 put分別具體實現什麼樣的功能,都是由程式設計師在寫服務端代碼時決定的。一個 post 請求和一個 put 請求上攜帶的信息量是一樣的,同樣的 http 請求頭(header),同樣的 http 請求體(body),唯一不同的是請求方法名,一個叫 post,一個叫 put。理論上來說程式設計師完全可以實現功能一樣的處理函數來處理 post 請求和 put請求。
  • Python接口自動化-requests模塊之post請求
    以下,主要介紹requests模塊中的post請求的使用。data為str時,如果不指定content-type,默認為application/json。請求參數到底是傳data還是json,這時候我們要看請求頭裡的content-type類型(具體參照接口文檔,沒有接口文檔的抓包)。
  • 我終於知道post和get的區別
    碼農:你知道get和post請求到底有什麼區別?程式設計師:你看這篇就知道了。碼農:你月薪三萬了?程式設計師:嗯。碼農:你是怎麼做到的?程式設計師:我做夢做到的前言這個問題幾乎面試的時候都會問到,是一個老生常談的話題,然而隨著不斷的學習,對於以前的認識有很多誤區,所以還是需要不斷地總結的,學而時習之,不亦說乎。
  • 接口測試實戰| GET/POST 請求區別詳解
    >    return f"query: {query}\n"\           f"post: {post}"啟動服務export FLASK_APP=hello.py flask run提示下面信息則表示搭建成功。