ค้นหาเว็บไซต์

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]

บทความที่เกี่ยวข้อง