Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果只有本地Angular应用程序调用控制器,则执行路由_Javascript_Angularjs_Node.js_Express - Fatal编程技术网

Javascript 如果只有本地Angular应用程序调用控制器,则执行路由

Javascript 如果只有本地Angular应用程序调用控制器,则执行路由,javascript,angularjs,node.js,express,Javascript,Angularjs,Node.js,Express,我有几个API路由,只有应用程序本身(controller.js)应该可以访问。有没有办法使用IP地址(可能由于欺骗而不安全)来限制谁使用api的这一部分 服务器大小(Server.js) 客户端(controller.js) 默认情况下,您的浏览器不允许您进行跨站点HTTP请求,因为这些请求是HTTP的主题 注意: 特别是,这意味着使用XMLHttpRequest的web应用程序 只能向加载它的域发出HTTP请求,并且 不适用于其他域 这意味着在您的情况下,只有api的同一域中的js才能访问它

我有几个API路由,只有应用程序本身(
controller.js
)应该可以访问。有没有办法使用IP地址(可能由于欺骗而不安全)来限制谁使用api的这一部分

服务器大小(Server.js)

客户端(controller.js)


默认情况下,您的浏览器不允许您进行跨站点HTTP请求,因为这些请求是HTTP的主题

注意:

特别是,这意味着使用XMLHttpRequest的web应用程序 只能向加载它的域发出HTTP请求,并且 不适用于其他域

这意味着在您的情况下,只有api的同一域中的js才能访问它们

如果我想将API的使用扩展到其他域怎么办?

在这种情况下,您必须在后端api中设置
accesscontrolalloworigin

一些例子:

如果你想调试这种行为,你可以打开firebug并检入你请求的标题

参考文献:


我认为使用GET参数是最简单的方法

js(express)

棱角的

$http.get("/api/specs", {
    params: { whois: "yourUniqueName" }
});
为每个API定义唯一的名称。 并设置服务器仅在客户端发送正确名称时返回响应

服务器返回404,除非您将
yourUniqueName
作为查询参数
whois
传递

/api/specs?whois=yourUniqueName
okay


你可能误解了他问的问题。嗯,suish,也许你是对的,我现在注意到控制器的部分;但是IP的那部分暗示我这是与域名有关的。你将如何重新表述他的问题?
// Cross-site HTTP requests from http://siteA.com
Access-Control-Allow-Origin: http://siteA.com

// Cross-site HTTP requests from all
Access-Control-Allow-Origin: *
app.get("/api/specs",function(req,res){
  var queryParam = url.parse(req.url,true).query
  if(queryParam.whois == "yourUniqueName"){
    res.send("okay");
  }else{
    res.status(404);
    res.send("NG");
  }
});
$http.get("/api/specs", {
    params: { whois: "yourUniqueName" }
});
/api/specs?whois=yourUniqueName
okay
/api/specs?whois=otherName
/api/specs?otherParam=something
/api/specs
NG