首页 > 解决方案 > JQuery .get() 函数未从外部站点检索 PHP 正则表达式回显

问题描述

好的,所以我有一个基本的索引 html 文件,其中有一个按钮,其功能如下:

$("#button").click(function() {
    $.get("./echo.php", function(data) {
        alert(data);
    });
});

我有一页叫做 normal.php,它只有一些文本:

Hello Test

我有另一个名为 echo.php 的页面,对于这个基本示例,它可以使用正则表达式在 normal.php 文件中找到“Hello Test”:

<?php
    $contents = file_get_contents("./normal.php");
    preg_match('/Hello Test/s', $contents, $matches);
    echo $matches[0];
?>

到目前为止有意义吗?好的,这一切都很好。您按下按钮,它会在索引页面上提醒“Hello Test”。同样,如果您只是打开 echo.php 页面,它只会在页面上显示“Hello Test”。

现在,当我尝试访问另一个网站时,问题就出现了。所以我基本上是在尝试为一个基本的天气抓取网站抓取天气数据,假设 echo.php 更新为具有以下代码:

<?php
    $contents = file_get_contents("http://www.weather-forecast.com/locations/london/forecasts/latest");
    preg_match('/3 days/s', $contents, $matches);
    echo $matches[0];
?>

如果您只是在 Web 浏览器上手动加载 echo.php,则可以。它将按预期显示“3 天”。但是,当我单击网站上的按钮时,什么也没有发生。它不会像它应该的那样提醒“3 天”,即使它确实在页面上显示,如果 echo.php 加载了就好了。这里有什么问题?

我已经在这里待了几个小时了。我正在使用最新的 PHP 版本 (7.2) 和最新的 JQuery (3.3.1)。我已经查看了这些其他线程,但它们都很相似,但它们并没有解决我的问题:

JQuery GET 请求不会从 php echo 获得正确的数据

jquery $.get 函数的问题

jQuery获取函数不返回数据

jQuery获取请求不检索HTML

jquery $.get 函数的问题

标签: phpjqueryajax

解决方案


推荐阅读