我在ASP.NET中有一个带有Web Api的角度应用程序。当我在本地工作时,应用程序正确显示ngBootbox,但是当我从服务器(IIS 7.5)运行应用程序时,chrome返回406(不可接受)错误。在开发人员工具的网络选项卡中,当我尝试调用ngBootbox时,我有下一个结果:
This is the result I get when i call the ngBootbox
我已尝试过在互联网上找到的所有可能的解决方案,例如在IIS管理器中添加MIME类型,我尝试使用不同的方式调用模式窗口,但没有任何效果。
我有另一个工作正常的ngBootbox但是没有使用html模板
我还尝试使用ngDialog和$ uibModal来显示模态窗口,但是它是一样的。
我非常渴望找到解决方案,我将非常感谢你。
注意:这是我在这里的第一篇文章,我不知道我是否正确地提出了我的问题。
好的,这是我用来调用ngBootbox窗口的按钮:
<button class="btn btn-lg btn-primary"
ng-bootbox-title="Registrar Llamada"
ng-bootbox-custom-dialog
ng-bootbox-custom-dialog-template="templates/calls.html"
ng-bootbox-buttons="buttons"
ng-click="setClientInfo(client.Id, client.Nombre)">
<i class="fa fa-phone"></i>
</button>
以下是我在&#34; ng-bootbox-custom-dialog-template&#34;中使用的模板:
<div class="card" ng-controller="callController">
<div class="card-body card-padding">
<div>
<toaster-container toaster-options="{'time-out': 3000, 'close-button':true, 'position-class': 'toast-bottom-right'}"></toaster-container>
</div>
<div class="form-group" style="position:relative; top:30px; left:20px;">
<div class="fg-line">
<md-input-container class="md-block; col-sm-5;" flex-gt-sm>
<label>Cliente</label>
<input type="text" ng-model="client.ClientName" ng-disabled="true">
</md-input-container>
</div>
<div class="fg-line">
<md-input-container class="md-block; col-sm-5;" flex-gt-sm>
<label>Fecha de Llamada</label>
<input type="text" ng-model="date" ng-disabled="true">
</md-input-container>
</div>
<div class="fg-line">
<md-input-container class="md-block; col-sm-5;">
<label>Observaciones</label>
<textarea required="true" ng-model="call.Observations" md-maxlength="200" rows="4" md-select-on-focus style="width: 380px;"></textarea>
</md-input-container>
</div>
<div class="form-group">
<div>
<button type="submit" class="btn btn-primary" ng-click="saveCall(call)" style="position:relative; top:-15px; left:05px;"><i class="fa fa-phone"></i> Registrar Llamada</button>
</div>
</div>
</div>
</div>
这是我的app.js:
var app = angular
.module('RDash', [
'ui.bootstrap',
'ui.router',
'ngCookies',
'ngMessages',
'ngAnimate',
'toaster',
'ngDialog',
'datatables',
'datatables.buttons',
'ngMaterial',
'ngBootbox',
'nvd3'
]).config(['$httpProvider', function ($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common["X-Requested-With"];
$httpProvider.defaults.headers.common["Accept"] = "application/json";
$httpProvider.defaults.headers.common["Content-Type"] = "application/json";
$httpProvider.defaults.headers.post = {};
$httpProvider.defaults.headers.put = {};
$httpProvider.defaults.headers.patch = {};
$httpProvider.useApplyAsync(true);
}]);
我想我在.config中遗漏了一些东西,但我不确定......
答案 0 :(得分:1)
这意味着在您的请求中,您发送的接受标头具有一些值,但服务器(API)正在以客户端无法接受的格式生成响应。例如如果您的请求包含accept标头作为application / xml,并且服务器(API)正在生成application / json类型的响应,这意味着服务器生成的响应不被客户端接受,只能以application / xml格式接受响应。检查&#34;接受&#34;的价值。你发送的标题以及api以什么格式生成响应。