如何防止向用户显示json响应?

时间:2016-12-01 07:57:42

标签: json ajax

$.ajax({
     type: "GET",
     contentType:"application/json;charset=UTF-8",                  
     url:"/api/links/",
     data: JSON.stringify(data),
     dataType: "json",
     success: function (response) {
        //some code
     }
)}

当用户在浏览器中输入以下网址时:

MYDOMAIN / API /链接

按回车键显示我的json数据,如:

[
  {
    "$id": "1",
    "LinkId": 1,
    "Title": "example.com",
    "Url": " www.test.com",
    "IsShow": true,
    "UserId": 1
  },
  {
    "$id": "2",
    "LinkId": 2,
    "Title": "fars.com",
    "Url": "fars.com",
    "IsShow": true,
    "UserId": 1
  }
]

现在我的问题是如何防止向用户显示此数据?

2 个答案:

答案 0 :(得分:0)

没有防弹方法。

大多数时候,只要向服务器发送AJAX请求,就会在请求中附加一个名为X-Requested-With且值为XMLHttpRequest的特殊标头。

因此,如果您希望仅通过AJAX请求访问您的数据,只需检查X-Requested-With标头是否具有XMLHttpRequest值,就可以决定是否使用您的数据或404返回JSON。

您也可以加密您的数据,正如@ymonad建议的更加安全,但同样,它只会让用户更难以看到,但甚至几乎不可能。

答案 1 :(得分:0)

尝试以下代码:

$.ajax({
 type: "GET",
 contentType:"application/json;charset=UTF-8",                  
 url:"/api/links/",
 data: JSON.stringify(data),
 dataType: "json",
 success: function (response) {
    location.reload();
 }
 )}