2016-12-09 56 views
0

我們正在建立新的SharePoint 2013企業服務器環境,並從現有的SharePoint 2010環境重新創建數據。'JSON'未定義 - SharePoint 2013 - InfoPath 2013 - IE11

一切都很順利,但我們最近開始被迫使用IE11,所以現在有問題。另外,我們沒有辦法不使用IE11。當它被迫從一個更高的元素下來,是政府,所以你可以想象如何工作,哈哈。

我需要幫助的問題是,當SharePoint窗體庫具有InfoPath窗體時,在附加文件後使用人員選取器時,表單將引發'JSON未定義'錯誤。 People Picker在附件之前工作正常,並且修改後的SharePoint列表(使用InfoPath進行了修改)不會發生此問題。

現在,如果我按F12> Emulation並將用戶代理字符串更改爲Internet Explorer 10,則表單工作。但我無意告知接近20,000用戶,他們必須在使用100 +表單我的環境的圖書館,大聲笑。

到目前爲止,我已經嘗試進行更改:

<meta http-equiv="X-UA-Compatible" content="IE=10"/> 

我這樣做對根網站母版頁,網站集母版頁和蜂房pickerdialog.master和V4.master。它位於:\ ServerName \ c $ \ Program Files \ Common Files \ microsoft shared \ Web服務器擴展\ 15 \ TEMPLATE \ LAYOUTS

但是,我這樣做的問題是我的更改似乎從未影響表單庫打開表單時。它似乎是從其他地方繪製它的標題/正文。如果我將它們全部更改爲IE = 9,則DOM中的元仍然讀取IE = 10。所以也許InfoPath.xsn沒有使用這些母版頁中的一個。所以我也從.xsn中導出了Source並查看了它,但是沒有提到X-UA或IE。

如果我找不到這個答案,我很可能會嘗試在IIS中強制使用URLRedirect或禁止對web.config進行更改。我也讀過,IE = 10和IE = EmulateIE10之間存在巨大的差異,但只有在設法讓Forms Library繪製我要告訴的元素之後,才能測試這些內容。

因此,我現在正式從谷歌提供的選項,所以需要幫助,哈哈。

相關信息:

當我瀏覽到窗體庫,並期待在DOM資源管理器中,我注意到:

頭包括:<meta http-equiv="X-UA-Compatible" content="IE=10">

體包含:No Reference to X-UA

雖然在表格庫中,如果我點擊新文檔來生成表格,我注意到:

head co ntains:<meta http-equiv="X-UA-Compatible" content="IE=10">

體包含:<meta http-equiv="X-UA-Compatible" content="IE=8">

我附上文件和表單發送回來後,我注意到:

頭包括:<META http-equiv=X-UA-Compatible content=IE=8>

體包含:No Reference to X-UA

因此,似乎身體的meta標籤在文件附件後被移動到頭部,但我不知道IE = 8來自哪裏。

請幫

拜託,笑

回答

0

好了,所以我相當肯定的是,IE = 8從InfoPath DLL來,但我發現自己非常短的時間,因此說幹就幹的通過IIS使用URL重寫模塊糾正了此問題。

事實上,這不是一個壞的解決方案,因爲我正在糾正的字符串很可能只在特定時間返回。但對於那些通過瘋狂地使用谷歌搜索來發現這個問題的人,就像我正在做的那樣:

............................. ..................................................

先安裝URL重寫模塊,首先「下載Web Platform安裝程序」並搜索URL重寫模塊(添加並安裝它),打開IIS。

單擊代表SharePoint 2013 Web應用程序的特定IIS站點,然後單擊功能視圖中的URL重寫按鈕。

單擊右側「操作」窗格中的查看服務器變量鏈接。從這裏您需要通過單擊操作窗格中的添加將HTTP_USER_AGENT添加到允許的服務器變量列表中。完成此步驟後,從「操作」窗格中單擊「返回到規則」按鈕,然後按添加規則。

下選擇入站規則部分空白規則(在左上角的第一選擇),並輸入/選擇以下值:

  1. 名稱

    • 這個規則可以被命名爲任何你想要它命名的東西
  2. M ATCH URL

    • 請求的URL:匹配模式

    • 使用:正則表達式

    • 模式: *

  3. 條件

    • 邏輯分組:匹配所有
    • 單擊添加條件,然後輸入以下數據:
      • 條件輸入: {HTTP_USER_AGENT}
      • 檢查輸入字符串:匹配模式
      • 樣式: MSIE \ s7.0;
      • (您可以通過使用https://regex101.com/測試啪)
  4. 服務器變量單擊添加,然後輸入以下數據:

    • 服務器變量名:HTTP_USER_AGENT

    • Value: Mozilla/5.0(compatible; MSIE 10.0; Windows NT 6.2;三叉戟/ 6。0)

    • 替換現有的值:經過
  5. 行動

    • 動作類型:

.................................................. ..............................

執行以下步驟後,請在操作窗格中按應用並嘗試編輯頁面在沒有兼容性視圖的IE 11中。

這也可以解決一些與IE11無法與SharePoint 2013良好搭配有關的其他問題。但是我還沒有遇到任何這些問題,因此永遠不會「真正」知道這是否修復了這些問題,或者如果他們永遠不會發生在我的環境中,哈哈。

如前所述,F12>仿真>用戶代理字符串> Internet Explorer 10,將解決此問題。但是,如果你有大量的「最終用戶」,要求他們每次打開表單時都要遵循這些步驟,但實際上並不適合作爲解決方案。

但是,請讓我知道如果這可以通過IIS沒有URL-Rewrite模塊完成。雖然我已經花了3或4周的時間爲自己,開發人員和服務器管理員付出了時間。所以也許讓我們同意假裝沒有更簡單的解決方案,哈哈。

謝謝,