ใน JS มันมักจะง่ายมากที่จะเปิดหน้าต่างใหม่ OPEN (URL); แค่ไป.
แต่เนื่องจากฉันต้องการส่งผ่านพารามิเตอร์ไปยังเซิร์ฟเวอร์และพารามิเตอร์ดูเหมือนสตริงยาวและความยาวของพารามิเตอร์การกระทำในวิธี Get นั้นมี จำกัด ฉันมีข้อกำหนดต่อไปนี้:
1. ใช้การส่งโพสต์ใน JS
2. หน้าส่งคืนจะแสดงในหน้าต่างใหม่
ก่อนอื่นฉันทำสิ่งนี้:
การคัดลอกรหัสมีดังนี้:
$ .ajax ({
ประเภท: "โพสต์",
url: '$ {contextpath} /analyse/detail.do'
ข้อมูล: {Carnum: Carnum, ids: refids},
ความสำเร็จ: ฟังก์ชั่น (str_response) {var obj = window.open ("เกี่ยวกับ: blank");
obj.document.write (str_response);
-
-
ส่งผ่าน jQuery Ajax ข้อมูลที่ส่งคืนจะถูกเขียนในหน้าใหม่ แต่เนื่องจากเบราว์เซอร์จะสกัดกั้นหน้าต่างป๊อปอัพโดยอัตโนมัติผู้ใช้ยังคงต้องคลายตัวเองและประสบการณ์ของผู้ใช้ก็แย่มาก
จากนั้นฉันก็ตระหนักโดยการเยาะเย้ยการส่งแบบฟอร์ม
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นโพสต์ (url, params) {var temp_form = document.createElement ("form");
temp_form .Action = url;
temp_form .target = "_blank";
temp_form .method = "โพสต์";
temp_form .style.display = "ไม่มี"; สำหรับ (var x ใน params) {var opt = document.createElement ("textarea");
opt.name = x;
opt.value = params [x];
temp_form .AppendChild (opt);
-
document.body.appendchild (อุณหภูมิ);
temp_form .submit ();
-
หมายเหตุ: หากคุณต้องการตั้งค่าคุณสมบัติเป้าหมายของแบบฟอร์มหน้าต่างที่เปิดใหม่เป็น '_blank'
จากนั้นขอโพสต์ ('$ {contextpath} /analyse/detail.do', {carnum: carnum, ids: refids});