我正在尝试使用angular http post将数据发送到servlet,
var httpPostData = function (postparameters,postData){ var headers = { 'Access-Control-Allow-Origin' : '*','Access-Control-Allow-Methods' : 'POST,GET,OPTIONS','Accept': 'application/json' }; return $http ({ method : 'POST',url : 'http://localhost:8080/json/jasoncontroller',params : postparameters,headers: headers,data : postData }).success (function (responseData){ return responseData.data; }) }
但我继续得到错误,请求资源上没有’Access-Control-Allow-Origin’标头.因此不允许原点’null’访问.
我确实在我的servlet上设置了以下标题
response.addHeader("Access-Control-Allow-Origin","*"); response.addHeader("Access-Control-Allow-Methods","POST,PUT,OPTIONS,DELETE"); response.addHeader("Access-Control-Max-Age","3600"); response.addHeader("Access-Control-Allow-Headers","Origin,X-Requested-With,Content-Type,Accept");
如果我从http帖子中删除数据它工作正常,但数据没有运气.
解决方法
实际上在一些框架中发生了两次调用,
>检查哪些方法可用的选项,
>然后有实际的电话.
选项只需要空答案200 OK
if(request.methord == 'OPTIONS'){ res.send(200); } else { next(); }
你也可以安装这个chrome extension来启用cors,这是最简单的方法!