คำถามติดแท็ก xmlhttprequest

XMLHttpRequest (XHR) เป็นอ็อบเจ็กต์ JavaScript ที่เปิดเผย API สำหรับการสร้างคำขอ HTTP แบบอะซิงโครนัสจากโค้ดส่วนหน้าที่เรียกใช้เว็บเบราว์เซอร์นั่นคือสำหรับการเปิดใช้งานเทคนิคการเขียนโปรแกรมที่เรียกว่า AJAX XHR API เป็น API แบบเดิม มันถูกแทนที่โดย Fetch API

7
jQuery เลิกใช้ XMLHTTPRequest แบบซิงโครนัสแล้ว
เช่นเดียวกับคนอื่น ๆ เว็บไซต์ของฉันใช้ jQuery เมื่อฉันเปิดเครื่องมือสำหรับนักพัฒนาฉันเห็นคำเตือนที่ระบุว่า XMLHTTPRequest คือ เลิกใช้งานเนื่องจากผลกระทบที่เป็นอันตรายต่อประสบการณ์ของผู้ใช้ปลายทาง ฉันอ่านบางส่วนของเอกสารแต่มันค่อนข้างเป็นเทคนิค มีใครสามารถอธิบายผลของการเปลี่ยนจาก XMLHTTPRequest เป็น WHATWG ได้หรือไม่? กล่าวว่าเกิดขึ้นในปี 2555 นอกจากนี้เอกสารยังระบุด้วยว่า Synchronous XMLHttpRequest ภายนอกคนงานกำลังอยู่ในขั้นตอนการลบออกจากแพลตฟอร์มเว็บเมื่อเป็นเช่นนั้นหากตัวแทนผู้ใช้มีพวกเขาในบริการพวกเขาจำเป็นต้องแก้ไขโค้ดที่มีอยู่หรือไม่

2
ส่ง JSON ไปยังเซิร์ฟเวอร์และดึง JSON กลับมาโดยไม่ต้องใช้ JQuery
ฉันต้องการส่ง JSON (ซึ่งฉันสามารถสตริงได้) ไปยังเซิร์ฟเวอร์และเพื่อดึง JSON ที่เป็นผลลัพธ์ทางฝั่งผู้ใช้โดยไม่ต้องใช้ JQuery ถ้าฉันควรใช้ GET ฉันจะส่ง JSON เป็นพารามิเตอร์ได้อย่างไร มีความเสี่ยงที่จะนานเกินไปหรือไม่? ถ้าฉันควรใช้ POST ฉันจะตั้งค่าonloadฟังก์ชันที่เทียบเท่าใน GET ได้อย่างไร หรือควรใช้วิธีอื่นดี? สังเกต คำถามนี้ไม่เกี่ยวกับการส่ง AJAX ธรรมดา ไม่ควรปิดว่าซ้ำกัน

5
readystates ที่แตกต่างกันใน XMLHttpRequest หมายถึงอะไรและฉันจะใช้มันได้อย่างไร
XMLHttpRequestมี 5 readyStateวินาทีและฉันใช้เพียง 1 ในนั้น (อันสุดท้าย,4 ) อื่น ๆ มีไว้ทำอะไรและฉันสามารถใช้งานได้จริงอะไรบ้าง?

4
ป้องกันการเปลี่ยนเส้นทางของ Xmlhttprequest
เป็นไปได้หรือไม่ที่จะป้องกันไม่ให้เบราว์เซอร์ติดตามการเปลี่ยนเส้นทางเมื่อส่ง XMLHttpRequest-s (เช่นรับรหัสสถานะการเปลี่ยนเส้นทางกลับมาและจัดการด้วยตัวเอง)

3
HTTP 401 - ค่าส่วนหัว WWW-Authenticate ที่เหมาะสมคืออะไร
แอปพลิเคชันที่ฉันกำลังดำเนินการอยู่ในขณะนี้มีค่าระยะหมดเวลาของเซสชัน หากผู้ใช้ไม่ได้โต้ตอบนานกว่าค่านี้หน้าถัดไปที่พยายามโหลดผู้ใช้จะได้รับแจ้งให้เข้าสู่ระบบ คำขอทั้งหมดจะถูกกำหนดเส้นทางผ่านกลไกนี้ซึ่งรวมถึงการโทร AJAX เดิมทีเรากำลังส่งส่วนหัว 200 พร้อมกับหน้าเข้าสู่ระบบซึ่งทำให้เกิดปัญหาบางอย่างกับ AJAX เนื่องจากมีการเรียกใช้โค้ดหากมีการส่งการตอบกลับ 200 ครั้งและข้อมูลส่วนใหญ่ที่ส่งกลับจากการเรียก RPC เหล่านี้คือ JSON หรือ JavaScript ดิบที่ได้รับการประเมิน (อย่า ถาม: |). ฉันแนะนำว่า 401 ดีกว่าเนื่องจากตัวแยกวิเคราะห์ JSON ของเราจะไม่พยายามใช้หน้าล็อกอิน HTML .. :) อย่างไรก็ตามเมื่ออ่านสเป็คฉันสังเกตว่าWWW-Authenticateต้องส่งฟิลด์ด้วย ค่าที่ดีสำหรับสนามนี้คืออะไร? จะApplication Loginพอเพียง?


19
XMLHttpRequest สถานะ 0 (responseText ว่างเปล่า)
ไม่สามารถรับข้อมูลด้วย XMLHttpRequest (สถานะ 0 และ responseText ว่างเปล่า): xmlhttp = XMLHttpRequest ใหม่ (); xmlhttp.open ("GET", "http://www.w3schools.com/XML/cd_catalog.xml", จริง); xmlhttp.onreadystatechange = ฟังก์ชัน () { ถ้า (xmlhttp.readyState == 4) การแจ้งเตือน ("สถานะ" + xmlhttp.status); } xmlhttp.send (); มันแจ้งเตือน "สถานะ 0" สถานการณ์เดียวกันกับคำร้องขอ localhost (cd_catalog.xml ถูกบันทึกเป็นไฟล์โลคัล) xmlhttp.open ("GET", "http: //localhost/cd_catalog.xml", จริง); แต่มีคำขอ IP ของ localhost xmlhttp.open ("GET", …

6
วิธีใดเป็นวิธีที่สะอาดที่สุดในการรับความคืบหน้าของคำขอ jQuery ajax
ในจาวาสคริปต์ธรรมดานั้นง่ายมากเพียงแค่แนบการโทรกลับไปที่ {XMLHTTPRequest}.onprogress var xhr = new XMLHttpRequest(); xhr.onprogress = function(e){ if (e.lengthComputable) var percent = (e.loaded / e.total) * 100; }; xhr.open('GET', 'http://www...', true); xhr.onreadystatechange = function() { ... }; xhr.send(null); แต่ฉันกำลังทำไซต์ ajax ที่ดาวน์โหลดข้อมูล html ด้วย JQuery ( $.get()หรือ$.ajax()) และฉันสงสัยว่าวิธีใดเป็นวิธีที่ดีที่สุดในการรับความคืบหน้าของคำขอเพื่อแสดงด้วยแถบความคืบหน้าเล็กน้อย แต่ฉันไม่อยากรู้ ค้นหาสิ่งที่เป็นประโยชน์ในเอกสาร JQuery ...

8
เพิ่ม "hook" ให้กับคำขอ AJAX ทั้งหมดบนเพจ
ฉันต้องการทราบว่าเป็นไปได้หรือไม่ที่จะ "เชื่อมโยง" กับคำขอ AJAX ทุกรายการ (ไม่ว่าจะเป็นในขณะที่กำลังจะถูกส่งหรือในเหตุการณ์) และดำเนินการ ณ จุดนี้ฉันสมมติว่ามีสคริปต์ของบุคคลที่สามอื่น ๆ ในหน้านี้ บางส่วนอาจใช้ jQuery ในขณะที่บางส่วนไม่ใช้ เป็นไปได้หรือไม่

3
ไม่ได้กำหนด / พบโมดูล XMLHttpRequest
นี่คือรหัสของฉัน: var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; var xhr = new XMLHttpRequest(); xhr.open("GET", "//URL") xhr.setRequestHeader("Content-Type: application/json", "Authorization: Basic //AuthKey"); xhr.send(); ฉันได้รับข้อผิดพลาด: Cannot find module 'xmlhttprequest' เมื่อฉันลบบรรทัดแรกฉันจะได้รับ: XMLHttpRequest is not defined ฉันได้ค้นหาทั้งหมดและมีคนพูดถึงปัญหาเกี่ยวกับ Node.js ที่นี่และที่นั่น แต่การติดตั้ง Node ของฉันถูกต้องดังนั้นฉันจึงไม่แน่ใจว่าปัญหาคืออะไร

8
ฉันจะส่งอักขระ“ &” (ampersand) ผ่าน AJAX ได้อย่างไร
ฉันต้องการส่งตัวแปรสองสามตัวและสตริงด้วยPOSTวิธีการจาก JavaScript ฉันได้รับสตริงจากฐานข้อมูลจากนั้นส่งไปยังหน้า PHP ฉันกำลังใช้XMLHttpRequestวัตถุ ปัญหาคือสตริงมีอักขระสอง&สามครั้งและ$_POSTอาร์เรย์ใน PHP จะเห็นว่ามันเหมือนกับหลายคีย์ ฉันพยายามเปลี่ยน&ด้วย\&กับreplace()ฟังก์ชั่น แต่ก็ดูเหมือนจะไม่ทำอะไร ใครสามารถช่วย? โค้ดจาวาสคริปต์และสตริงมีลักษณะดังนี้: var wysiwyg = dijit.byId("wysiwyg").get("value"); var wysiwyg_clean = wysiwyg.replace('&','\&'); var poststr = "act=save"; poststr+="&titlu="+frm.value.titlu; poststr+="&sectiune="+frm.value.sectiune; poststr+="&wysiwyg="+wysiwyg_clean; poststr+="&id_text="+frm.value.id_text; xmlhttp.open("POST","lista_ajax.php",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send(poststr); สตริงคือ: <span class="style2">"Busola"</span>

6
รหัสสถานะ HTTP เป็น 0 มีความหมายหรือไม่?
ดูเหมือนว่าเมื่อคุณสร้าง XMLHttpRequest จากสคริปต์ในเบราว์เซอร์หากเบราว์เซอร์ถูกตั้งค่าให้ทำงานแบบออฟไลน์หรือหากดึงสายเคเบิลเครือข่ายออกคำขอจะเสร็จสมบูรณ์โดยมีข้อผิดพลาดและมีสถานะ = 0 0 ไม่อยู่ในรายการที่อนุญาต รหัสสถานะ HTTP รหัสสถานะ 0 หมายถึงอะไร? มันหมายถึงสิ่งเดียวกันในทุกเบราว์เซอร์และสำหรับยูทิลิตี้ไคลเอ็นต์ HTTP ทั้งหมดหรือไม่ เป็นส่วนหนึ่งของข้อมูลจำเพาะ HTTP หรือเป็นส่วนหนึ่งของข้อกำหนดโปรโตคอลอื่น ๆ หรือไม่ ดูเหมือนว่าจะหมายความว่าไม่สามารถส่งคำขอ HTTP ได้เลยบางทีอาจเป็นเพราะไม่สามารถแก้ไขที่อยู่เซิร์ฟเวอร์ได้ ข้อความแสดงข้อผิดพลาดใดเหมาะสมที่จะแสดงให้ผู้ใช้เห็น "คุณไม่ได้เชื่อมต่ออินเทอร์เน็ตหรือเว็บไซต์กำลังประสบปัญหาหรืออาจมีข้อผิดพลาดในการพิมพ์ที่อยู่"? ฉันควรเพิ่มสิ่งนี้เพื่อที่ฉันจะเห็นพฤติกรรมใน FireFox เมื่อตั้งค่าเป็น "ทำงานออฟไลน์" แต่ไม่ใช่ใน Microsoft Internet Explorer เมื่อตั้งค่าเป็น "ทำงานออฟไลน์" ใน IE ผู้ใช้จะได้รับกล่องโต้ตอบที่ให้ตัวเลือกในการออนไลน์ FireFox ไม่แจ้งผู้ใช้ก่อนส่งคืนข้อผิดพลาด ฉันขอสิ่งนี้เพื่อตอบสนองต่อคำขอให้ "แสดงข้อความแสดงข้อผิดพลาดที่ดีกว่า" สิ่งที่ Internet Explorer ทำได้ดี จะบอกผู้ใช้ว่าอะไรเป็นสาเหตุของปัญหาและให้ทางเลือกในการแก้ไขแก่ผู้ใช้ ในการให้ UX ที่เทียบเท่ากับ …

5
ฉันจะทราบได้อย่างไรว่า jQuery มีคำขอ Ajax ที่รอดำเนินการอยู่
ฉันมีปัญหากับการควบคุม jQuery ที่เราทำ สมมติว่าคุณมีรายการแบบเลื่อนลงที่ให้คุณป้อน ID ของรายการที่คุณกำลังมองหาและเมื่อคุณกด ENTER หรือสูญเสียโฟกัสในกล่องข้อความระบบจะตรวจสอบความถูกต้องผ่าน jQuery ว่า ID ที่คุณป้อนนั้นถูกต้องโดยจะแสดงการแจ้งเตือนหากไม่มี 't. สิ่งนี้ก็คือเมื่อผู้ใช้ทั่วไปป้อนค่าที่ไม่ถูกต้องในนั้นและสูญเสียโฟกัสโดยการกดปุ่มส่งโพสต์ jQuery จะส่งคืนหลังจากส่งแบบฟอร์มแล้ว มีวิธีใดบ้างที่ฉันสามารถตรวจสอบว่ามีการประมวลผลคำขอ Async โดย jQuery หรือไม่เพื่อที่ฉันจะไม่อนุญาตให้ส่งแบบฟอร์ม

10
การเปิดใช้งานการแบ่งปันทรัพยากรข้ามแหล่งที่มาบน IIS7
ฉันเพิ่งพบกับการโพสต์คำขอ Javascript ไปยังโดเมนอื่น โดยค่าเริ่มต้น XHR ไม่อนุญาตให้โพสต์ไปยังโดเมนอื่น ทำตามคำแนะนำจากhttp://enable-cors.org/ฉันได้เปิดใช้งานสิ่งนี้ในโดเมนอื่น <?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" /> <add name="Access-Control-Allow-Headers" value="Content-Type" /> </customHeaders> </httpProtocol> </system.webServer> </configuration> ทุกอย่างทำงานได้ดีในขณะนี้อย่างไรก็ตามยังคงส่งคืนการตอบกลับ 405 ก่อนที่จะส่งการตอบกลับที่ใช้งานได้ 200 ครั้ง Request URL:http://testapi.nottherealsite.com/api/Reporting/RunReport Request Method:OPTIONS Status Code:405 Method Not Allowed Request Headersview source Accept:*/* Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch …

9
การจัดการคุกกี้ใน PhoneGap / Cordova
ฉันกำลังทำงานกับแอป PhoneGap ที่มีการใช้งานเซสชันเซิร์ฟเวอร์ ต้องใช้คุกกี้เพื่อจัดการเซสชัน นอกจากนี้ควรจัดการคุกกี้จากตัวจัดสรรภาระงานด้วย ดังนั้นจึงไม่มีทางรอบ คุณจัดการกับคุกกี้ในแอป PhoneGap ของคุณอย่างไร? ฉันได้ทำวิจัยสำเร็จแล้ว: บางคนบอกว่าการจัดการคุกกี้อาจขึ้นอยู่กับเซิร์ฟเวอร์ที่ไม่ได้ตั้งค่าคุกกี้สำหรับตัวแทนผู้ใช้ที่ไม่รู้จัก (IIS): เซสชัน PhoneGap (คุกกี้) บน iOS ในคุกกี้ JavaScript สามารถตั้งค่าด้วย document.cookie = ... แต่จะไม่ถูกบันทึกใน PhoneGap และสูญหาย ก่อนที่จะทำการร้องขอ xhr มันใช้งานได้ สามารถเรียกดูคุกกี้ได้หลังจากคำขอ xhr ด้วย xhr.getResponseHeader ('Set-Cookie') แต่เมื่อตั้งค่าบนเซิร์ฟเวอร์จริงเท่านั้น น่าเสียดายที่ jQuery ตัดส่วนหัว "คุกกี้" ออก คุณสมบัติ JavaScript document.cookie ไม่ได้รับการกำหนดและไม่ได้รับการอัพเดตหลังจากการร้องขอ (xhr) บางคนแนะนำให้ localStorage บันทึกรหัสเซสชันเป็นต้น แต่สคริปต์ทั้งหมดสามารถเข้าถึงได้และนี่อาจเป็นปัญหาด้านความปลอดภัย XSS …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.