Office 365 Word Add-In: ต้องห้าม 403 เมื่อพยายามสร้างเอกสารด้วยไลบรารี office javascript

เรากำลังพยายามสร้างเอกสารใหม่ใน word online โดยใช้ไลบรารี office javascript สคริปต์มีอยู่ในคำว่า add in เอกสารประกอบสำหรับวิธีการสร้างอยู่ที่ https://dev.office.com/reference/add-ins/word/application การเรียกเอกสารที่สร้างขึ้นตามด้วยวิธีการเปิดจะส่งผลให้เกิดข้อผิดพลาดที่ต้องห้าม 403 เสมอ

HTTP403: FORBIDDEN - The server understood the request, but is refusing to fulfill it.
(XHR)OPTIONS - https://offline.officeapps.live.com/outage.html

Failed to load https://offline.officeapps.live.com/outage.html: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://auc-word-edit.officeapps.live.com' is therefore not allowed access. The response had HTTP status code 403.

รหัสในการเปิดเอกสารมีดังนี้

Word.run(function (context) {
        var myNewDoc = context.application.createDocument();
        context.load(myNewDoc);

        return context.sync()
            .then(function () {
                myNewDoc.open();
                context.sync();
            }).catch(function (myError) {
                console.log(e);
            })

    }).catch( errorHandler });

เกิดข้อผิดพลาดในการเรียก context.sync() เริ่มต้น

Word Online กำลังบันทึกลงในบัญชีธุรกิจ Office 365 การสร้างเอกสารจากอินเทอร์เฟซใช้งานได้

เหตุใดข้อผิดพลาดนี้จึงถูกส่งกลับ

อัปเดต

ข้อผิดพลาดเกิดขึ้นเฉพาะเมื่อมีการใช้การเพิ่มในบริบทของบัญชี Office 365 Business ที่ได้รับการสนับสนุนโดยเซิร์ฟเวอร์ sharepoint แบบออนไลน์

เมื่อฉันลองใช้บัญชี OneDrive ส่วนตัว การสร้างเอกสารและการเปิดทำได้สำเร็จ


person K Rouse    schedule 13.03.2018    source แหล่งที่มา
comment
เปิด URL ด้วยตนเอง offline.officeapps.live.com/outage.html ก็ให้เช่นกัน ข้อผิดพลาดบริการไม่พร้อมใช้งาน และไม่ใช่เอกสารคำ เป็นเพียง html? คุณช่วยแสดงให้เราเห็นว่าคุณจำลองมันในขั้นตอนไหนและข้อมูลรายละเอียดเพิ่มเติมได้ไหม   -  person MSFT-Jipyua    schedule 14.03.2018
comment
ฉันได้ชี้แจงคำถามเดิมและเพิ่มการอัปเดตเพิ่มเติม   -  person K Rouse    schedule 14.03.2018
comment
คุณเห็น Add-in นี้กำลังจะแสดงกล่องโต้ตอบหน้าต่างใหม่เมื่อมีการเรียกใช้วิธีการ Open หรือไม่? และหลังจากนั้นจะมีแม่หม้ายคนใหม่เปิดเอกสาร คุณช่วย copy url ของแม่หม้ายคนนั้นให้ฉันหน่อยได้ไหม และคงจะดีถ้าคุณให้วิดีโอสั้นๆ เกี่ยวกับการทำซ้ำได้ เนื่องจากฉันเพิ่งลองใช้บัญชี O365 แต่ไม่สามารถทำซ้ำได้   -  person MSFT-Jipyua    schedule 14.03.2018
comment
นอกจากนี้ สำหรับบัญชี O365 ของคุณ คุณควรมีโฟลเดอร์ส่วนตัวสำหรับเก็บเอกสารของคุณ (โฟลเดอร์คือที่ที่เอกสารบันทึกไว้เมื่อคุณสร้างเอกสารใหม่จาก UI) คุณช่วยลองเรียก CreateDocument API ไม่ใช่ open API จากนั้นตรวจสอบว่าไฟล์ถูกสร้างขึ้นภายใต้โฟลเดอร์นั้นหรือไม่   -  person MSFT-Jipyua    schedule 14.03.2018
comment
ฉันไม่ถูกต้อง เกิดข้อผิดพลาดในบริบทเริ่มต้น.sync() ฉันพบสิ่งนี้หลังจากเรียก API สร้างเอกสารแล้วจึงทำการซิงค์ กล่องโต้ตอบปรากฏขึ้น Add-In นี้กำลังจะสร้างเอกสารใหม่ในโฟลเดอร์เริ่มต้นของคุณบนที่เก็บข้อมูลบนคลาวด์ปัจจุบันของคุณ เมื่อฉันคลิกตกลง ข้อผิดพลาดจะถูกส่งกลับในคอนโซลจาวาสคริปต์ ไม่ได้สร้างเอกสารในบัญชีธุรกิจ onedrive ของฉัน   -  person K Rouse    schedule 14.03.2018
comment
Word.run(ฟังก์ชั่น (บริบท) { var myNewDoc = context.application.createDocument(); context.load(myNewDoc); return context.sync() .then(function () { myNewDoc.open(); context.sync( ); }).catch(function (myError) { console.log(JSON.stringify(myError)); }) }); คุณสามารถเปลี่ยนรหัสของคุณเป็นรหัสข้างต้นและรายงานข้อความแสดงข้อผิดพลาดให้ฉันทราบได้หรือไม่   -  person MSFT-Jipyua    schedule 14.03.2018
comment
คำสั่ง stringify ส่งคืน {} เท่านั้น ถ้าฉันพิมพ์ข้อความแจ้งว่า ReferenceError: e ไม่ได้ถูกกำหนดไว้ การ Tyring ใน chromw ทำให้ฉันมีข้อความพิเศษเกี่ยวกับ 'Access-control-allow-origin' ฉันสงสัยว่านี่เป็นเพราะการตั้งค่าเซิร์ฟเวอร์ sharepoint หรือไม่   -  person K Rouse    schedule 15.03.2018
comment
โปรดทราบว่าตัวแปรคือ myError ไม่ใช่ e โปรดเปลี่ยนเป็น myError แล้วลองอีกครั้ง ก่อนอื่นเราควรตรวจสอบให้แน่ใจก่อนว่าเป็นข้อผิดพลาด createDocument API หรือข้อผิดพลาด Open API 403 ไม่ใช่ข้อผิดพลาด api สำหรับทั้งสอง apis เราไม่เกิดข้อผิดพลาด 403 ฉันไม่แน่ใจว่าคุณเห็นข้อผิดพลาด 403 ได้อย่างไร   -  person MSFT-Jipyua    schedule 15.03.2018


คำตอบ (2)


ฉันคิดว่าสิ่งที่คุณพยายามทำนั้นสามารถทำได้ด้วยโค้ดเพียงบรรทัดเดียว และมันใช้งานได้ทางออนไลน์ โปรดลอง

 Word.run(async (context) => {
        context.application.createDocument().open();
        context.sync();
    });

person Juan Balmori    schedule 14.03.2018
comment
ฉันลองใช้รหัสนี้แล้ว แต่ยังคงให้ข้อผิดพลาด 403 ด้านบน - person K Rouse; 15.03.2018

ดูเหมือนว่าปัญหานี้จะได้รับการแก้ไขแล้ว ตอนนี้ฉันสามารถสร้างและเปิดเอกสารได้แล้ว ฉันคิดได้แค่ว่ามันเป็นปัญหาชั่วคราวกับ sharepoint หรือปัญหาในไลบรารี javascript

ขอบคุณผู้ที่พยายามให้ความช่วยเหลือ

person K Rouse    schedule 28.03.2018