html - “您需要打开一个新应用程序......”运行 Sharepoint 2016 应用程序的本地主机
问题描述
从 VS2019(调试模式)运行 SharePoint 2016 应用程序时,我转到 IE 11 中的“站点设置”,然后单击我的链接。当我这样做时,我得到了这个
如果我单击“允许”,我会看到另一个弹出窗口,说明“您需要一个新应用程序才能打开 localhost ”。我阅读了这篇文章,发现该页面更有可能抱怨 url 没有正确形成,但这与该页面曾经拥有的链接相同(http://localhost/ /)。我不知道为什么会这样。
该页面是一个带有 Sharepoint 和 AngularJS 的普通 aspx 页面:
<%@ Assembly Name="Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Page Language="C#" MasterPageFile="~masterurl/default.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage" meta:progid="SharePoint.WebPartPage.Document" meta:webpartpageexpansion="full" %>
<%@ Register TagPrefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="SharePointWebControls" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint" %>
<asp:Content ID="Content1" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
<script src="/_layouts/packages/angular.1.6.9/angular.min.js"></script>
<script>
var app = angular.module('my-app', []);
angular.element(function () {
document.getElementById("myFrame").src = document.location.protocol == "http:" ?
document.location.hostname + ':8368/Pages/mypage.aspx?' + window.location.search.substr(1) :
document.location.hostname + ':8268/Pages/mypage.aspx?' + window.location.search.substr(1);
});
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="PlaceHolderMain" runat="server">
<body class="flex-container">
<div>
<iframe style="width:100%; height:850px" frameborder="0" id="myFrame"></iframe>
</div>
</body>
</asp:Content>
这基本上有两个页面 - 一个用于 http 和 https。这些被加载到 iframe 中(出于一个无关紧要的充分理由)。然后我的内容页面被加载:
<!DOCTYPE html>
<script src="/Scripts/jquery/jquery-1.12.4.min.js"></script>
<link rel="stylesheet" href="/Content/kendo/kendo.bootstrap.min.css" />
<link rel="stylesheet" href="/Content/kendo/kendo.common.min.css" />
<link rel="stylesheet" href="/Content/kendo/kendo.common-bootstrap.core.min.css" />
<link rel="stylesheet" href="/Content/kendo/kendo.common-bootstrap.min.css" />
<script src="/Scripts/kendo/kendo.all.min.js"></script>
<link href="/Content/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="/Scripts/bootstrap/bootstrap.min.js"></script>
<script src="/Scripts/angular/angular.js"></script>
<script src="/Scripts/angular/angular-touch.js"></script>
<script src="/Scripts/angular/angular-animate.js"></script>
<link rel="stylesheet" href="/Content/Page.css" />
<style>
.k-button {
margin: 0 10px 0 0;
}
::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
color: gray;
opacity: 0.7; /* Firefox */
}
:-ms-input-placeholder { /* Internet Explorer 10-11 */
color: gray;
opacity: 0.7;
}
::-ms-input-placeholder { /* Microsoft Edge */
color: gray;
opacity: 0.7;
}
.k-textbox {
width: 100%;
}
</style>
页面详情
它没有走这么远,但我发布它只是为了提供上下文。主要问题是为什么我收到一条消息说我需要一个应用程序来运行本地主机。
解决方案
答案是我没有在我的页面 URL前添加“ document.location.protocol ”。应该是 ' document.location.protocol + '//' + document.location.hostname + ':8268/Pages/mypage.aspx?' + window.location.search.substr(1); "
推荐阅读
- javascript - Javascript按与数字的最短距离对数组进行排序
- r - R 中的 Bigrquery 库不上传数据并且不返回错误。按下停止时获取应用程序回调
- javascript - 为 Shopify 店面使用不同的搜索 API
- html - 如何在两行之间留出空间?
- reactjs - 验证DOMNesting(...):
- java - java 正则表达式 "^\\d{1,4}\\,(.*?),"
- python - IRIS 数据集 - 统计分析、平均值和模式
- ios - 未能注册“捆绑标识符”
- sql - 如何在没有 SQL DBA 管理员访问权限的情况下使用 powershell 检查服务器中是否存在 SQLAlwaysON?
- javascript - 如何使用字符串索引访问 TypeScript 中的对象值