typeahead-template-url 导致页面要求凭据
typeahead-template-url causes page to ask for credentials
我有这个 Anuglar.js UI-Boostrap 问题。我正在尝试使用 ui-bootstrap 设置自定义弹出模板。但是,每当页面加载时,我都会弹出一个窗口,要求我再次输入我的凭据。它们在页面上没有错误,并且没有任何内容无法通过网络加载。如果我尝试登录,它会说它不正确,如果我取消它,它会将我从我的应用程序中注销。
我慢慢开始注释掉我添加的代码的不同部分,发现当我注释掉 ui-bootstrap 属性 它不再要求下面的凭据下面是注释掉 ui-boostrap 的代码。
<input type="text" @*typeahead-popup-template-url="customPopupTemplate"*@ typeahead-min-length="0" typeahead-show-hint="false" uib-typeahead="d as d.name for d in bds | filter:{name:$viewValue,isDeleted:false}" typeahead-on-select="getStuffs($item)" ng-model="item.bd" ng-required="true" />
customPopupTemplate 位于下方,来自此处的 angulars 站点(向下滚动到 typeahead)
http://angular-ui.github.io/bootstrap/
我最初是按照网站的原样执行的,但仍然弹出窗口,所以我将附加标记放在一个部分中,然后将部分加载到页面上,但我仍然遇到同样的问题。我正在尝试显示一个自定义弹出窗口,但无法通过要求凭据的网站。我在这里有点迷路,不知道该去哪里。任何帮助将不胜感激。
<div class="col-md-12" id="customPopupTemplate">
<div class="custom-popup-wrapper"
ng-style="{top: position().top+'px', left: position().left+'px'}"
style="display: block;"
ng-show="isOpen() && !moveInProgress"
aria-hidden="{{!isOpen()}}"
>
<p class="message">select location from drop down.</p>
<ul class="dropdown-menu" role="listbox">
<li class="uib-typeahead-match" ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }"
image-checkbox ng-style="{'background-color':bgCol}" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{::match.id}}">
<div uib-typeahead-match index="$index" match="match" query="query" ng-style="{background-color:match.color" template-url="templateUrl"></div>
</li>
</ul>
</div>
</div>
加载页面时提示输入此类凭据通常是由网络服务器配置引起的。我的猜测是您正在使用 IIS,并且网站上启用了 Windows 身份验证,它需要您的本地 Windows 用户凭据。
尝试在 IIS 中禁用 Windows 身份验证并启用匿名,看看是否会得到相同的结果。
假设您正在使用 ASP.Net mvc,您可能需要添加一个 web.config 文件来存储您的 customPopupTemplate
。首先,我建议重命名为
customPopupTemplate.cshtml
。然后你需要在这些模板文件所在的项目区域添加一个web.config文件。像这样:
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*.cshtml" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
<system.web>
<compilation>
<assemblies>
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=" />
</assemblies>
</compilation>
</system.web>
</configuration>
关键是 system.webServer
中的这一部分。它基本上允许应用程序提供 .cshtml
个文件:
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*.cshtml" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
我有这个 Anuglar.js UI-Boostrap 问题。我正在尝试使用 ui-bootstrap 设置自定义弹出模板。但是,每当页面加载时,我都会弹出一个窗口,要求我再次输入我的凭据。它们在页面上没有错误,并且没有任何内容无法通过网络加载。如果我尝试登录,它会说它不正确,如果我取消它,它会将我从我的应用程序中注销。
我慢慢开始注释掉我添加的代码的不同部分,发现当我注释掉 ui-bootstrap 属性 它不再要求下面的凭据下面是注释掉 ui-boostrap 的代码。
<input type="text" @*typeahead-popup-template-url="customPopupTemplate"*@ typeahead-min-length="0" typeahead-show-hint="false" uib-typeahead="d as d.name for d in bds | filter:{name:$viewValue,isDeleted:false}" typeahead-on-select="getStuffs($item)" ng-model="item.bd" ng-required="true" />
customPopupTemplate 位于下方,来自此处的 angulars 站点(向下滚动到 typeahead)
http://angular-ui.github.io/bootstrap/
我最初是按照网站的原样执行的,但仍然弹出窗口,所以我将附加标记放在一个部分中,然后将部分加载到页面上,但我仍然遇到同样的问题。我正在尝试显示一个自定义弹出窗口,但无法通过要求凭据的网站。我在这里有点迷路,不知道该去哪里。任何帮助将不胜感激。
<div class="col-md-12" id="customPopupTemplate">
<div class="custom-popup-wrapper"
ng-style="{top: position().top+'px', left: position().left+'px'}"
style="display: block;"
ng-show="isOpen() && !moveInProgress"
aria-hidden="{{!isOpen()}}"
>
<p class="message">select location from drop down.</p>
<ul class="dropdown-menu" role="listbox">
<li class="uib-typeahead-match" ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }"
image-checkbox ng-style="{'background-color':bgCol}" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{::match.id}}">
<div uib-typeahead-match index="$index" match="match" query="query" ng-style="{background-color:match.color" template-url="templateUrl"></div>
</li>
</ul>
</div>
</div>
加载页面时提示输入此类凭据通常是由网络服务器配置引起的。我的猜测是您正在使用 IIS,并且网站上启用了 Windows 身份验证,它需要您的本地 Windows 用户凭据。
尝试在 IIS 中禁用 Windows 身份验证并启用匿名,看看是否会得到相同的结果。
假设您正在使用 ASP.Net mvc,您可能需要添加一个 web.config 文件来存储您的 customPopupTemplate
。首先,我建议重命名为
customPopupTemplate.cshtml
。然后你需要在这些模板文件所在的项目区域添加一个web.config文件。像这样:
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*.cshtml" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
<system.web>
<compilation>
<assemblies>
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=" />
</assemblies>
</compilation>
</system.web>
</configuration>
关键是 system.webServer
中的这一部分。它基本上允许应用程序提供 .cshtml
个文件:
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*.cshtml" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>