我已将WebDAV服务器集成到我的网站中(使用IT Hit产品),允许用户对Office文档进行“在线编辑”,而无需下载和重新上传。它通常似乎工作,除了用户第一次尝试打开链接,它始终是只读的。在他们第一次打开任何WebDAV链接之后,它似乎在那之后工作正常。查看Fiddler,与后续时间相比,第一次打开文件有一组不同的请求。
第一次(HTTP方法 - URL - 用户代理):
GET - Files/doc.docx - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
OPTIONS - Files/ - Microsoft Office Protocol Discovery
OPTIONS - Files/ - Microsoft Office Excel 2013
HEAD - Files/doc.docx - Microsoft Office Excel 2013
GET - Files/doc.docx - Microsoft Office Excel 2013
PROPFIND - Files/doc.docx - Microsoft Office Excel 2013
后续时间:
OPTIONS - Files/ - Microsoft Office Excel 2013
HEAD - Files/doc.docx - Microsoft Office Excel 2013
LOCK - Files/doc.docx - Microsoft Office Excel 2013
GET - Files/doc.docx - Microsoft Office Excel 2013
PROPFIND - Files/doc.docx - Microsoft Office Excel 2013
当您在每种情况下单击链接时,浏览器会以不同方式处理链接。第一次,它打开常用的打开/保存为/取消框,但之后它会为您提供一个Microsoft Office对话框,询问您是否要打开此文件。
它似乎不仅仅是我的实现,因为使用它时会发生相同的行为:http://ajaxbrowser.com/(你需要在IE中)。
我尝试通过检查用户代理拦截不起作用的请求,但似乎停止了它将来如何正确打开链接。
有没有人遇到这个并找到解决办法?如果用户第一次尝试新功能时效果不佳,则不起作用。它也没有那么明显,它没有用,我可以很容易地看到一些用户在本地保存只读文件,并期望它已与服务器同步。任何避免这种情况的解决方案都是受欢迎的。
答案 0 :(得分:2)
这是与Office 2013相关的错误。它似乎适用于Office 2010.
我让IT Hit看看它,如果你使用以下javascript打开链接,他们找到了解决方法:
window.location('ms-word:ofe|u|' + documentLocation);
如果代理是ms-word,则可以使用ms-excel替换,具体取决于文件类型。