发布表单数据以在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