我是Angularjs的初学者。当我使用angular将数据发布到服务器时,会发送2个请求(POST和OPTIONS方法)。是否可以只发送1个请求?
我使用$http
,$http.post
和$resource
进行测试,但未解决。
感谢。
我的代码......
$http({
method: 'POST',
url: myUrl,
data: 'test'
});
...这...
$http.post(myUrl ,'test data')
.then(function(resp) {
console.log('Success', resp);
}, function(err) {
console.error('ERR', err);
});
...和
var app = angular.module('myApp', ['ngResource']);
app.controller("HttpController", [ '$scope', '$resource',
function($scope, $resource) {
$scope.saveUser = function(){
var User = $resource(myUrl);
User.save( myData , function(response){
// ....
});
}
}]);
答案 0 :(得分:0)
很遗憾,您的请求网址在屏幕截图中不可见。但我猜你的后端并不像前端那样运行。 因此,需要进行跨源资源共享(CORS)。
HTTP选项调用由浏览器自动完成,以确定您是否具有执行所需HTTP调用的权限。见preflight requests
答案 1 :(得分:0)
到目前为止,我知道OPTIONS方法用于识别用户是否有权发出请求(下一个,在你的情况下是POST,test1.php)。在您对OPTIONS请求的回复中,您应该允许方法,允许来源和其他一些东西(这里是完整的explonation https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS)。所以回答你的问题...只要你从客户端发出请求+请求URI不在你的来源(域) - CORS原则总是出现 - >你总是要做OPTIONS请求。