1. คำถาม:
แบ็กเอนด์ไม่สามารถรับข้อมูลที่ส่งโดย $ http.post ใน AngularJs และจะแสดงเป็น null เสมอ
รหัสตัวอย่าง:
$ http.post (/admin/keyValue/getListByPage, {pageindex: 1, pageSize: 8}) .success (ฟังก์ชั่น () {การแจ้งเตือน ("mrjing");});รหัสไม่ผิด แต่ไม่สามารถรับข้อมูลได้ในพื้นหลัง ทำไมถึงเป็นเช่นนี้?
การใช้การตรวจสอบ Firefox: พารามิเตอร์อยู่ในรูปแบบ JSON
ใช้การตรวจสอบ Google: วิธีการถ่ายโอนพารามิเตอร์คือการร้องขอ payload
จะพบได้ว่าวิธีการถ่ายโอนพารามิเตอร์คือการร้องขอ payload รูปแบบพารามิเตอร์คือ JSON และไม่ใช่การถ่ายโอนพารามิเตอร์แบบฟอร์มดังนั้นในพื้นหลังพารามิเตอร์ไม่สามารถรับได้โดยการรับข้อมูลแบบฟอร์ม
เมื่อส่งคำขอแบบฟอร์มโพสต์ประเภทเนื้อหาที่ใช้คือแอปพลิเคชัน/x-www-form-urlencoded และหากคำขอโพสต์โดยใช้ Ajax ไม่ได้อ้างถึง
สำหรับส่วนหัวคำขอคงที่ประเภทเนื้อหาเริ่มต้นคือข้อความ/ธรรมดา charset = utf-8 และประเภทเนื้อหาที่นี่คือ:
-
2. โซลูชัน:
อัปโหลดรหัสโดยตรง:
// พารามิเตอร์ที่จะส่งผ่านโพสต์ var data = {pageindex: 1, หน้า: 8,}, // ที่อยู่ของโพสต์คำขอ url = "/admin/keyvalue/getlistbypage", // เปลี่ยนวิธีการส่งพารามิเตอร์เป็น formPostCfg = {ส่วนหัว: {return $ .param (data);}}; // ส่งคำขอโพสต์เพื่อรับข้อมูล $ http.post (url, data, postcfg) .success (ฟังก์ชั่น (การตอบสนอง) {แจ้งเตือน ("mrjing");});ถัดไปมาดูเครื่องมือตรวจสอบ:
การตรวจสอบ Firefox: ประเภทพารามิเตอร์ได้กลายเป็นข้อมูลแบบฟอร์ม
การตรวจสอบของ Google:
ตอนนี้วิธีการส่งพารามิเตอร์ได้กลายเป็นวิธีการฟอร์มและแบ็กเอนด์สามารถรับพารามิเตอร์ได้ตามปกติ!
ข้างต้นคือความรู้ที่เกี่ยวข้องเกี่ยวกับเหตุผลที่ข้อมูลที่ส่งโดย $ http.post ใน AngularJS ไม่สามารถรับได้โดยแบ็กเอนด์ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!