AngularJs:POST、PUT和DELETE rest调用出错&引用;XMLHttpRequest无法加载预飞的响应,因为预飞的HTTP状态代码无效“500”;
AngularJs:POST、PUT和DELETE rest调用出错。“XMLHttpRequest无法加载预飞的响应具有无效的HTTP状态代码500”,但GET正在工作。这是特定于浏览器的。在safari中可以工作,但在chrome中不行。请给我一些解决办法 我的服务:AngularJs:POST、PUT和DELETE rest调用出错&引用;XMLHttpRequest无法加载预飞的响应,因为预飞的HTTP状态代码无效“500”;,angularjs,Angularjs,AngularJs:POST、PUT和DELETE rest调用出错。“XMLHttpRequest无法加载预飞的响应具有无效的HTTP状态代码500”,但GET正在工作。这是特定于浏览器的。在safari中可以工作,但在chrome中不行。请给我一些解决办法 我的服务: var saffModuleServices = angular.module('saffModuleServices'); saffModuleServices.factory('applications', ['$ht
var saffModuleServices = angular.module('saffModuleServices');
saffModuleServices.factory('applications', ['$http','$resource','$appConstants',
function($http, $resource,$appConstants){
$http.defaults.useXDomain = true;
delete $http.defaults.headers.common['X-Requested-With'];
var applicationsEndPoint = $appConstants.adminApiEndPoint + 'admin/systems/:id';
return {
getApplications : function(){
return $resource(applicationsEndPoint , {}, {
query: {method: 'GET', params: {}, isArray: false},
post: {method: 'POST', params: {}, isArray: false, headers: {'Content-Type': 'application/json;charset=utf-8'}},
update: {method: 'PUT', params: {}},
delete : {method: 'DELETE'}
});
}
}
}]);
控制器中的功能:
$scope.save = function(){
var modelSchema = {
name : $scope.applicationsDetails.name,
description : $scope.applicationsDetails.description,
statusName : $scope.applicationsDetails.statusName
};
debugger;
applications.getApplications().update({id:$scope.applicationsDetails.id}, modelSchema, function(response){
Notification.success("success");
}, function(response){
Notification.error("error");
});
}
****注意:这适用于safari。
那么,如何停止chrome发送rest呼叫的飞行前信息呢。我们可以更改标题配置中的任何内容吗**
**更好的解决方案是修改后端(服务器):它需要CORS头。如果您的后端是PHP,那么以下是解决方案: 如果需要临时解决方案,可以为chrome安装此扩展: 但您的应用程序只有在安装了此扩展后才能工作
关于…根据您的描述,您的问题是CORS。这意味着您在一个域中,并试图从另一个域访问信息。如果您包括您正在使用的语言,如果您有权访问其他域的源代码,我可以帮助您进一步修复服务器错误吗?根据你提供的非常有限的信息,这就是我所能建议的。500错误是由服务器而不是浏览器生成的,因此,您的代理在Safari中的设置不同,因此它指向不同的服务器,或者服务器上存在根据Safari的请求导致错误的内容。您需要回答问题以提供更多详细信息。我猜,您的代理设置是罪魁祸首。比较浏览器之间的代理设置。