Angular.js表单POST返回错误405不允许使用方法
Angular.js Form POST Returns Error 405 Method Not Allowed
我在提交表单时一直收到405错误。这是我的控制器:
"严格使用";
angular.
module('myApp').
component('zipPopup', {
templateUrl: 'zip-popup/zip-popup.template.html',
controller: function ZipPopupController($scope, $http) {
$scope.show = true;
$scope.hide = function(){
$scope.show = false;
};
$scope.user = {};
$scope.regex = '''d{5}';
$scope.submitForm = function(isValid) {
if(isValid) {
$http({
method : 'POST',
url : '/leads',
data : $scope.user,
headers : {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(response) {
$scope.show = false;
})
.error(function(response) {
console.log(response);
});
}
};
}
});
这是我的观点:
<div class="zip-popup text-center">
<div class="popup-container">
<form name="zipForm" class="zip-form" ng-submit="submitForm(zipForm.$valid)" novalidate>
<input ng-model="user.zipCode" ng-pattern="regex" name="zipCode" class="form-control text-center" placeholder="Your Zip" required />
<p class="error" ng-show="zipForm.zipCode.$invalid && !zipForm.zipCode.$pristine">A 5 digit zip code is required.</p>
<button type="submit" class="btn btn-block" ng-disabled="zipForm.$invalid">Submit</button>
</form>
</div>
</div>
是否有其他文件或我需要修改的内容来允许这种情况发生?我错过了什么?
服务器告诉您服务器无法接受特定的方法(GET
、POST
、PUT
、PATCH
、DELETE
等)。这很可能是因为API路由/端点没有配置POST
方法。
例如,在ExpressJS中,您需要通过执行以下操作来配置接受POST
的路由:
app.post('/leads', function (req, res) {
res.send('POST request to the homepage');
});
有关405 Method Not Allowed
错误的更多信息,请单击此处。
几周前我也遇到过类似的问题。事实证明,服务器只接受标头中特定类型的'Content-Type'
。
然而,将Content-Type
更改为application/json解决了问题:
$http({
method : 'POST',
url : '/leads',
data : $scope.user,
headers : {'Content-Type': 'application/json'}
})
.success(function(response) {
$scope.show = false;
})
.error(function(response) {
console.log(response);
});
p.S.我并不是说这一定能解决你的问题,但这是一个与这类问题相关的解决方案。只需找出服务器期望的输入类型即可
编辑
我并不是说将'application/json'
作为Content-Type
发送。我想说的是找到可以接受的内容类型并发送该类型的标题
您尝试让后端工程师实现OPTIONS方法。
https://en.wikipedia.org/wiki/Cross-origin_resource_sharing#Preflight_example
相关文章:
- 不允许使用引导清单'组件'指令
- 在严格模式下不允许使用八进制文本
- Chrome 不允许使用过期时间少于 4 小时的 Cookie
- 为什么我的代码没有'不允许使用特定符号
- http://0.0.0.0:4567访问控制允许来源不允许.使用Backbone&Firebase
- 使用Google Drive和Angularjs时,不允许使用请求标头字段Accept Encoding
- JavaScript 中不允许的方法
- 输入框中不允许使用数字
- 405:不允许使用方法(AJAX 查询到 Flask)
- 简单购物车不允许使用千个逗号分隔符
- JSON 数据解析器不允许使用单引号
- Web 服务器不允许使用开机自检方法
- 为什么在严格模式下不允许使用八进制数字文字(解决方法是什么?)
- 未能加载资源:服务器的响应状态为405(不允许使用方法)
- pre - flight响应中的Access-Control-Allow-Methods不允许使用PUT方法.在AWS
- 不允许使用自托管WCF REST服务JSON POST方法
- 不允许使用JSONP WCF方法
- Angular.js表单POST返回错误405不允许使用方法
- 错误405:不允许使用方法
- 不允许使用OPTIONS方法.Get工作,但不是POST