gpt4 book ai didi

javascript - AngularJS 指令 templateUrl 在加载文件 URL 时返回 400

转载 作者:数据小太阳 更新时间:2023-10-29 05:18:49 25 4
gpt4 key购买 nike

我在 MVC 5 布局页面中有一个基本指令,其中包含一个用于搜索的指令。我的问题是无法加载 templateUrl(400 错误)。如果我直接在浏览器中输入 URL,我可以毫无困难或错误地加载 html 页面。我找不到加载页面的 AJAX 调用失败的原因。

Chrome 调试器 Chrome debugger

这是在 Chrome 中加载的 HTML 页面

Page loads

app.js

(function() {
var app = angular.module("mainApp");

app.directive("basicSearch", function() {
return {
templateUrl: 'app/directives/basic-search.html',
controller: function($scope, search) {
$scope.keyword = '';
$scope.exact = false;
$scope.submitSearch = function () {
search.searchByKeyword($scope.keyword, 0, $scope.exact);
}
}
}
});
}());

basic-search.html

<div>
<input type="search" ng-model="keyword" name="keyword" />
<button type="submit" ng-click="submitSearch()"></button>
<input type="checkbox"ng-model="exact" name="exact" />
<label for="exact">Exact Match?</label>
</div>

_Layout.cshtml

<html>
<head>
<base href="@Request.ApplicationPath" />
<!--- JS & CS References -->
<title></title>
</head>
<body ng-app="mainApp">
<!-- Other stuff -->
<basic-search></basic-search>
<!-- More other stuff -->
@RenderBody()
</body>
</html>

编辑这是成功的请求(通过浏览器):Good Request

这是失败的(通过 Angular 指令):Bad Request

最佳答案

Chris 提到的 IE 错误是一个缓存错误,在使用 angular 的 $http 和 IE 时允许旧内容被重新提供。

我在这里写过关于这个主题的文章:http://benjii.me/2014/07/ie-is-caching-my-angular-requests-to-asp-net-mvc/

比删除错误修复代码更好的修复方法是修复它。请改用以下内容:

//initialize get if not there
if (!$httpProvider.defaults.headers.get) {
$httpProvider.defaults.headers.get = {};
}

//disable IE ajax request caching
$httpProvider.defaults.headers.get["If-Modified-Since"] = "Fri, 01 Jan 2010 00:00:00 GMT";

关于javascript - AngularJS 指令 templateUrl 在加载文件 URL 时返回 400,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28416551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com