Angular JS。请求标头字段Access-Control-Allow-Origin在预检响应中不允许使用Access-Control-Allow-Origin

时间:2017-09-21 06:37:37

标签: angularjs ajax http cors postman

我已尝试过所有内容,请使用CORS插件。禁用chrome中的web-security。   响应来自POSTMAN,但无法在$http中获取。

$http({
  url: "https://interview-api-staging.bytemark.co/books",
  method: 'GET',
  headers: {
    'Access-Control-Allow-Origin': '*',
    'Access-Control-Allow-Methods': 'OPTIONS,POST,GET,OPTIONS,PUT,DELETE',
    'Access-Control-Allow-Headers': 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Alive,X-Requested-With,If-Modified-Since'
  }
}).then(function(d) {
  console.log(d);
});

2 个答案:

答案 0 :(得分:0)

在后端使用CORS。否则,您可以在Chrome网上应用店中查看Allow-Control-Allow-Origin: *,使用chrome extension

  

当您尝试点击角应用时,您需要打开该扩展程序。

     

否则您需要在后端应用程序中激活CORS

答案 1 :(得分:0)

  

客户与此无关。使用CORS标头,您可以告诉客户端我信任哪些其他服务器。那些人可以分享你的资源,客户也不会介意。

     

例如,如果你有两个域名告诉客户,那么让你的资源被你的第二个网站使用,你不能说我相信你是一个客户。

     

所以你要保护服务器,而不是客户端。您不希望世界上任何地方托管的脚本都可以访问AJAX API端点。

     

客户没有任何收获/损失。它只是对服务器的保护,因为使用AJAX所有人都清楚地看到所有URL,如果没有这种保护,任何人都可以使用你的API继续运行他们的前端,只有服务器必须输掉这个所以他们决定谁可以使用他们的资源。

source

如上所述,你不需要在前端做任何与cors相关的事情。确保在其响应标头中从后端发送cors标头。

服务器必须保护自己,所以他们必须向客户说出一些客户将遵循的规则。默认情况下,客户端将接受所有内容。