AngularJs:POST、PUT和DELETE rest调用出错&引用;XMLHttpRequest无法加载预飞的响应,因为预飞的HTTP状态代码无效“500”;

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

AngularJs:POST、PUT和DELETE rest调用出错。“XMLHttpRequest无法加载预飞的响应具有无效的HTTP状态代码500”,但GET正在工作。这是特定于浏览器的。在safari中可以工作,但在chrome中不行。请给我一些解决办法

我的服务:

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的请求导致错误的内容。您需要回答问题以提供更多详细信息。我猜,您的代理设置是罪魁祸首。比较浏览器之间的代理设置。