javascript - jQuery AJAX POST - ข้อมูลไม่ถูกส่ง
$.ajax({
url: "/Configuration/AddServersAdvancedSelect",
type: "POST",
data: { selectedOUs: that.getByDataSelected() },
async: false,
dataType: "html",
success: result => {
cont.setTabContentFromHtmlString(result, 1);
cont.tabClicked($("td[data-value='1']").get(0));
},
error: (xhr, ajaxOptions, thrownError) => {
//
}
});
แก้ไข: ฉันกลับมาทำงานวันนี้และมันก็เริ่มใช้งานได้อย่างมหัศจรรย์ ฉันเดาว่านั่นก็เป็นบางสิ่งบางอย่าง
นี่คือคำขอ ajax ของฉันไปยังเซิร์ฟเวอร์ ด้วยเหตุผลบางอย่าง ข้อมูลไม่ถูกเลือก ฟังก์ชัน getByDataSelected ทำงานเหมือนที่ควรและส่งค่ากลับที่ดี เมธอดของ Controller มีชื่อว่า selectedOUs และทุกอย่างตรงกัน มีใครรู้ไหมว่าทำไมการส่งข้อมูลผ่าน ajax POST นี้จึงไม่ส่งข้อมูล?
คำตอบ #1
jQuery กำหนดพารามิเตอร์ data เป็น
ประเภท: PlainObject หรือ สตริง หรือ อาร์เรย์
ข้อมูลที่จะส่งไปยังเซิร์ฟเวอร์ จะถูกแปลงเป็นสตริงคำค้นหาหากยังไม่ใช่สตริง ข้อมูลนี้จะถูกต่อท้ายไปยัง URL สำหรับการร้องขอแบบ GET ดูตัวเลือก processData เพื่อป้องกันการประมวลผลอัตโนมัตินี้
วัตถุต้องเป็นคู่คีย์/ค่า.
ถ้าค่าเป็นอาร์เรย์ jQuery จะทำการเรียงลำดับค่าหลายค่าที่มีคีย์เดียวกันตามค่าของการตั้งค่าแบบดั้งเดิม (อธิบายไว้ด้านล่าง)
ฉันยินดีเดิมพันว่าค่าที่ส่งกลับจาก that.getByDataSelected() ของคุณไม่สอดคล้องกับพารามิเตอร์ที่คาดหวังถ้ามันไม่ได้ถูกส่งไป
ในกรณีนี้ ฟังก์ชันข้อผิดพลาดของคุณควรได้รับข้อผิดพลาดของเซิร์ฟเวอร์ภายใน [500]