发布表单数据以在angularJS中休息资源

我正在尝试使用angularJS将表单数据作为请求主体发布到其他服务,但是我无法将其发送到资源。 如果可以的话请帮忙..

我有这样的服务...

angular.
  module('core.search').
  factory('Search', ['$resource',
    function($resource) {
      return $resource('http://localhost:8888/PROJECT/rest/search, {}, {
          query: {
              method: 'POST',
              isArray: true
          }
      });
    }
  ]);

像这样的组件...

angular.
  module('vehicleSearch').
  component('vehicleSearch', {
    templateUrl: 'vehicle-search/vehicle-search.template.html',
    controller: ['Search',
      function VehicleSearchController(Search) {
        this.vehicles = [];
        this.searchVehicles = function(vehicleSearchForm) {
            this.vehicles = Search.query([], JSON.stringify(vehicleSearchForm));
        };
      }
    ]
  });

和这样的模板...

<div>
<h4>Vehicle Search</h4>
<form ng-submit="$ctrl.searchVehicles(vehicleSearchForm)">
    <table>
        <tr>
            <td><label for="vrm" >VRM: </label></td>
            <td><input type="text" id="vrm" name="vrm" ng-model="vehicleSearchForm.vrm" /></td>
            <td><input type="text" id="type" name="type" ng-model="vehicleSearchForm.type" /></td>
        </tr>
        <tr>
            <td><input type="submit" value="search"/></td>
        </tr>
    </table>
    <br>
    <table>
        <tr>
            <td>VRM</td>
            <td>Make</td>
            <td>Model</td>
            <td>Colour</td>
            <td>Date Registered</td>
        </tr>
        <tr ng-repeat="vehicle in $ctrl.vehicles">
            <td>{{vehicle.vrm}}</td>
            <td>{{vehicle.make}}</td>
            <td>{{vehicle.model}}</td>
            <td>{{vehicle.colour}}</td>
            <td>{{vehicle.dateFirstReg}}</td>
        </tr>
    </table>
</form>

我知道该资源正在返回数据,因为我可以通过我的测试工具与媒体类型应用程序/ json类似的请求主体来调用它。{“type”:“vehicleSearchRequest”,“searchReason”:“01”,“vrm”: “ABC123”}

我想也许我需要指定什么媒体类型的身体会是,但默认情况似乎是一样的,所以在亏本。 当我在角度中尝试这种方式时,我可以看到请求正在经过身份验证时触击服务器,但没有做任何事情,因此相信这与请求主体有关。 请帮忙。


我发现问题实际上是由于我的其他资源位于不同的域上。 由于安全原因,浏览器不允许这样做。 错误:没有“Access-Control-Allow-Origin”标题出现在请求的资源上。 因此不允许访问Origin'http:// localhost:8000'。 对于任何犯同样错误的人,请参阅:XMLHttpRequest无法加载https:// www。[website] .com /

链接地址: http://www.djcxy.com/p/77657.html

上一篇: Post form data to rest resource in angularJS

下一篇: how to cancel a promise with $resource in angularjs in 1.5