$ http.get进行额外的调用,即使用CORS的选项

时间:2017-05-18 05:08:03

标签: angularjs service cross-domain http-get

我经历了一些帖子和文章,但它对我没用。我正在寻找有效的解决方案。

问题: - 每当我致电我的服务时,$ http.get拨打额外的电话,即选项。

例如:网站:http://locahost:4020/dashboard
    Api:http://locahost:3020/filters

  

app.config([' $ httpProvider',function($ httpProvider){
  $ httpProvider.defaults.useXDomain = true删除   $ httpProvider.defaults.headers.common [' X-请求-随着']
  //$httpProvider.defaults.headers.common['X-Requested-With'] =   ' XMLHttpRequest的' //重置标题以避免OPTIONS请求
  $ httpProvider.defaults.headers.common = {}
  $ httpProvider.defaults.headers.post = {}
  $ httpProvider.defaults.headers.put = {}
  $ httpProvider.defaults.headers.patch = {}
  $ httpProvider.defaults.headers.get = {}}])

$http.get(url + '?' + $.param(args || ''), req)
每次调用时,

http://locahost:3020/filters都无法返回数据,因为OPTIONS调用在实际api调用(get)之前正在进行。

enter image description here

1 个答案:

答案 0 :(得分:1)

您无法放弃预检OPTIONS请求。

此请求的目的是要求服务器发出实际请求的权限。您的预检响应需要确认这些标题,以便实际请求起作用。

See this answer

这些标题是从角度上弃用的,因此没有必要将它们放入。

headers to avoid OPTIONS request
$httpProvider.defaults.headers.common = {}
$httpProvider.defaults.headers.post = {}
$httpProvider.defaults.headers.put = {}
$httpProvider.defaults.headers.patch = {}
$httpProvider.defaults.headers.get = {} } ])