Javascript 将公共API保护到一个域

Javascript 将公共API保护到一个域,javascript,angularjs,node.js,api,Javascript,Angularjs,Node.js,Api,我正在创建一个页面,该页面生成一个基本的API请求,然后从mongo数据库返回结果。它看起来像这样: $scope.doSearch = function(query){ $http({ method: "get", url: "/api/search.json?q=" + query }).success(function(data){ // bind data to display the results on the page

我正在创建一个页面,该页面生成一个基本的
API
请求,然后从mongo数据库返回结果。它看起来像这样:

$scope.doSearch = function(query){
    $http({
        method: "get",
        url: "/api/search.json?q=" + query
    }).success(function(data){
        // bind data to display the results on the page
    });
};
然后在服务器上捕获请求,搜索数据库并将结果返回到上述ajax请求。既然这是一个公共API,我怎样才能使它不致于您从其他站点发出请求,或者仅仅通过发出一个基本的
cURL
请求


我曾考虑过使用HMAC,但我认为这不起作用,因为这样客户就需要知道秘密才能创建签名,然后任何人都可以查看签名并复制它以从他们自己的站点发出请求。

您可以通过为所有请求发出
访问控制允许来源:
标头来拒绝除您自己的域之外的所有基于broswer的请求。请参阅以了解更多信息。这只会停止AJAX,对吗?正确的、基于浏览器/客户端的请求