javascript - 限制来自 Node 应用程序外部的 Ajax 调用

标签 javascript jquery ajax node.js express

我想限制除我的应用程序之外的 AJAX 调用。我不希望我的 AJAX 请求在从应用程序外部调用时发送响应,即使 AJAX 调用的 url 被复制并粘贴到浏览器中也是如此。我正在使用node、express和mongodb。

最佳答案

我所做的是在我的 ajax 调用中添加一些 header :

// javascript
$.ajax({
    type: 'POST',
    dataType: 'json',
    headers: {"Content-Type": "application/json", "app-ver": 1.5}
})
.

// php
$client_ver = floatval($_SERVER['HTTP_APP_VER']);

// I also check $_SERVER['CONTENT_TYPE'] to be: 'application/json'
// and post method. (ask me I'll add)

if ( $client_ver != 1.5 )
{
    echo '{}';
    exit();
}

编辑: 另一种方法是与您的应用程序创建一个“ session ”,这意味着成功登录后的每个请求都必须携带一个 token (至少) 并让您的应用程序附加许多唯一的 header 键值,这些键值只能由您的服务器识别,并且没有任何两个请求是相似的(例如:在 header 中包含时间,并使用 REST 命令对其进行哈希处理,并让服务器检查它以确保它是唯一的命令,并且它不仅仅是被操纵的。 * 您必须了解您的 session 创建算法,并且它必须是唯一的,或者如果您不知道如何做到这一点,我建议您对其进行更多研究。

关于javascript - 限制来自 Node 应用程序外部的 Ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42362898/

相关文章:

javascript - 如果我用 fadeToggle 替换 fadeIn/fadeOut 为什么它不起作用

javascript - 在 ng-repeat 中显示/隐藏 onclick 按钮

jQuery .css 不响应加载的 ajax

javascript - Angular Js ng-repeat无法使用ajax从json数组获取输出

javascript - jQuery 是否应该仅用于就绪事件处理程序?

javascript - Tinymce 编辑器在初始化后只加载了 alert 语句

Javascript - 显示和隐藏大量列表项的最快方法

javascript - CSS - 在子菜单上单击时保持父级展开并突出显示子菜单。

jquery - css 无法更改输入文本字段之间的空格

javascript - 如何修改此 jQuery 插件 slider 的滚动和方向?