然后,代理API调用使用Nginx重定向到Angular应用程序

时间:2015-04-29 23:39:19

标签: angularjs node.js nginx

请访问此网址:

https://example.com/AbCDeFghijK

...在API验证AbCDeFghijK的同时等待几毫秒,然后您将被重定向到:

https://example.com/?ref=SomeString

如果您使用 Nginx 来投放角色应用,您怎么能实现这一目标?

当您点击链接但使用相同的域时,我们的想法是实现producthunt之类的功能。我没有弄清楚如何在我的Angular App中使用MEAN app或another view来完成此操作。

其他信息

当您向https://api.example.com/t/AbCDeFghijK发出GET请求时,您会收到重定向到https://example.com/?ref=SomeString

并且,当您向https://example.com进行GET请求时,您正在访问由 Nginx 提供的Angular应用。

server {

  server_name my-angular-app;

  root /path/to/my-angular-app;

  location / {
    try_files $uri $uri/ /index.html;
  }
}

1 个答案:

答案 0 :(得分:1)

解决此问题的最佳方法是首先存储URL,然后在后台进行AJAX调用以验证URL,然后根据响应重定向用户。

var proxy = "https://api.example.com/t/";
var payload = $location.path();
$http.post(proxy + payload).
  success(function(data, status) {
    if(data.ref) return $location.path('/?ref=' + payload);
  }).
  error(function(data, status) {
    console.log(data,status);
  }
});

在这里,您需要对从路径中提取的有效负载执行一些验证,以确保在调用API之前它在您的架构中。