php - 如何知道网站是否正在通过 AJAX 请求访问

标签 php jquery ajax api jsonp

所以,我有一个用于我的顶级网站的 API,我将其提供给我的用户以放置在他们的页面上。

API:

<script type="text/javascript">

 var id = 21;

 $(document).ready(function(){
      $.getJSON("http://topsite.com/index.php?page=vote", { id: id, hasVoted: 'unknown' }, function(data) {
           if(data == 2) {
                window.location.replace("http://topsite.com/index.php?page=vote&id=" + id);
           }
      });
 });

所以,基本上我想做的是避免我的客户将此代码放在他们的网站上:

<script type="text/javascript">$.getJSON("http://topsite.com/index.php?page=vote&id=21");</script>

因为我希望用户重定向到我的网站,这样我就可以通过广告赚取一些收入,甚至向他们展示一些信息。

所以,我想知道是否有任何方法可以知道何时使用 ajax 请求访问网站,或者是否有方法在设置了 hasVoted 参数的情况下禁用 AJAX 请求。

感谢任何帮助,谢谢!

编辑:当从带有“hasVoted”参数的网站重定向到其他页面时,我将发送自定义 header 。

编辑问题:我将如何继续发送带有位置的自定义 header ?还是我离这里太远了?

最佳答案

许多 AJAX 库非正式地添加了一个名为 X-Requested-With 的自定义 HTTP header ,并将值设置为 XMLHttpRequest。您可以检查该 header 并查看它是否设置为该值,在这种情况下,最好假设它是一个 AJAX 请求。

但是,没有标准,如果您直接构建 XMLHttpRequest(即实现您自己的 AJAX 代码),则没有真正的方法可以区分。

关于php - 如何知道网站是否正在通过 AJAX 请求访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9969997/

相关文章:

php - 仅当我使用 PHP 登录时才能访问该页面

javascript - 使用jquery获取 anchor 标签的数据值

jquery - 需要一个jQuery日历插件,具体日期

javascript - Google Contacts API 不返回输出

javascript - 使用 ajax 读取 XML 节点

Php Apache2 插入大型二进制 MSSQL 错误 : Changed database context to 'database'

php - WordPress数据库错误: You have an error in your SQL syntax

php - 无法使用 $_GET 方法获取 ID

jQuery 无法在实际环境中工作

javascript - Django 模板 : how to auto-refresh a jQuery Datatables?