javascript - 使用带有 href 的 ajax 打开动态 php 页面,无需刷新页面

标签 javascript php jquery ajax

现在我的问题很简单,在堆栈溢出站点上没有看到任何烟灰。我如何使用 Ajax 打开动态 PHP 页面,如果 Ajax 失败也无法正常打开页面,就像 google 一样。如果他们的搜索失败,让我们假设他们使用 Ajax,他们会自动运行页面,我该如何通过 Href 链接做到这一点 没有页面刷新,如果无法正常加载,请帮助我陷入困境。不是重复的,没有看到任何答案,请帮助我被困住了..

    example
   <a href="onelink.php" >Open me</a>

           //current page onelink.php

最佳答案

我会给你一个简短的答案,因为我已经在这个网站上看到了这类问题的一些非常好的答案,如果你继续在你列出的标签中搜索,特别是 jquery ajax 那么我确信你得到你需要的东西。 jquery.ajax() 页面位于 http://api.jquery.com/jquery.ajax/可能是一个很好的起点。如果你想真正理解这一点,你就必须做一些研究。也就是说,这是我的一些旧代码。

这是从客户端发送到服务器上的 php 文件的一些信息的 ajax 请求。只要页面能够响应所请求的 URL,页面是动态生成的还是真实的并不重要。

function logrequest()
    {
            $.ajax({
               url: siteURL + '/custom/log/requestlog.php',
               type: 'GET',
               data: $.param({ip: customer_ip}),
               dataType: 'json',
               success: function(data){
                     if(data.count!=null)
                     {
                            requests=data.count;
                     }
               }
        });
    }

以下是来自 php 文件名 requeSTLog.php 的响应。

<?php
$ip=$_GET['ip'];
$ip_passS=file_get_contents('http://www...passthru.txt');
$ip_passA=split(',',$ip_passS);
$ip_cnt=0;
$d=gmdate("ymd");
$RQLog=$_SERVER['DOCUMENT_ROOT'].'/custom/log/requests/RQLog'.$d.'.txt';
$fp=fopen($RQLog,"a");
$s=gmdate("H:i:s").", ".$ip."\r\n";
fwrite($fp,$s);
fclose($fp);
$ip_requests=file_get_contents('http://www.../custom/log/requests/RQLog'.$d.'.txt');
$ip_cnt=substr_count($ip_requests,$ip);
header('Content-Type: text/json');
if(!in_array($ip,$ip_passA))
{
    $response = array('count'=>$ip_cnt);
    echo json_encode($response);
}
else  //if your in the passthru, you get a free lunch
{
    $response = array('count'=>0);
    echo json_encode($response);
}
?>

因此,ajax 从 PHP 文件请求数据,服务器上的文件通过将数据以 json 格式回显来进行响应。在某些情况下,根据请求的去向,您可能永远不会收到响应。就像您处理的网站可以将地址转换为 GPS 坐标一样。如果他们很忙并且您的优先级较低,您可能永远不会得到回复,但您的代码可以愉快地进行。如果您继续生成太多此类请求,那么您可能会遇到一些浏览器和服务器施加的限制,因此您需要了解自己在做什么。

但这就是简短的答案。

这样做的值(value)在于,这种事情可能会满足您网站上屏幕的一小部分,如果它没有立即响应,您可以继续加载页面,数据将被返回时提供。

这段代码的细节并不重要。问题是“如何使用 ajax 打开 php 页面(动态或其他)。答案是将正确的 url 传递给 ajax 请求,页面通过回显它返回其数据。这可能是单击按钮或DOM 加载后的文档就绪事件。可能有很多事情。您必须决定您想要它是什么。顺便说一句,调试此类代码可能非常困难,因此请耐心等待。

问题的其余部分

因此,我没有回答的问题的一部分是,如果服务器上的页面打不开从未发送响应,该怎么办。因此,一个问题可能是页面确实打开并运行,但没有发回您期望的响应,或者响应期间可能存在 Uncaught Error 。我发现这些情况通常很难排除故障,因此有时我会设置响应日志并记录对成功和失败例程的所有响应(如果它们都存在)。这样我就有希望确定如何改进代码。您还可以将错误对象传递给您的 javascript 例程,并且根据您收到的错误类型(假设您记录了错误),您可能能够深入了解该问题。但简短的答案是修复您的代码或找出发出另一个请求的方法。如果您同时编写客户端和服务器端,您可以多次使用 try/catch 来查看是否可以捕获问题。如果您不是编写服务器端,那么请尽可能多地阅读其 API 或接口(interface),并注意返回的错误。

所以大多数时候我发现其他人的公共(public)访问界面确实跟我顶嘴,但我必须知道如何倾听。当我编写服务器端代码时,我几乎总是尝试使其保持简单,因为我通常不期望在这些情况下获得太多流量,如果我期望大量流量,我通常会选择商用解决方案(即真正知道自己在做什么的人)。

关于javascript - 使用带有 href 的 ajax 打开动态 php 页面,无需刷新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42238320/

相关文章:

javascript - 使用 gulp 进行丑化时,Angular-ui-router 会中断

javascript - 如何在 javascript ace 编辑器中标记行号?

php - 这个 JSON 代码安全吗?

php - 在 YAML 文件中测试配置的位置

Javascript - Jquery - 单击(函数()

javascript - 通过使用 AJAX 回调发送参数来打击插件盗用

javascript - 使用 &lt;input&gt; 和 javascript 和 php 获取 id 值

javascript - 如何在屏幕外预加载图像,然后移动到不同的屏幕元素?

javascript - 将下拉列表值传递给谷歌地图javascript

php - 如何调用数组中的所有php函数