Làm sao để nhận biết URL được enter từ Address Bar hay từ Ajax request?

Mình có một URL ví dụ như bên dưới, và user có thể enter nó vào Address Bar của trình duyệt để gọi tới nó.

https://myapp.com/funnyproject/tools/getLayers.ashx?search=true

Trong khi nó cũng được gọi từ một hàm JS (bằng Ajax request) - như sau:

$.ajax({
    url: "tools/getLayers.ashx?search=true",
    headers: { "cache-control": "no-cache" },
    cache: false,
    success: function (data) {
        //do something
    }
});

Làm sao để phân biệt/hoặc nhận biết được URL phía trên đến từ đâu? Do người dùng enter vào address bar, hay do ajax gọi?
Mình đang cố gắng nhận biết nếu URL bị gọi theo cách enter vào address bar thì web của mình sẽ reject lời đó liền, ngay và lập tức.

PHP hay C# cũng thế thôi, nói chung về cơ bản, ajax hay navigation đều send GET request với nội dung như nhau, nhưng ngoài GET ra, ajax có thể send với các method khác, nên nếu bạn muốn đảm bảo request đó không thể từ navigation thì chỉ chấp nhận POST request thôi.

Nhưng vấn đề là, tại sao bạn lại phải chặn navigator như thế?

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?