如何将PHP中的JSON响应传递给Javascript

如何将PHP中的JSON响应传递给Javascript,javascript,php,json,stdclass,Javascript,Php,Json,Stdclass,我无法将JSON请求从PHP传递到Javascript。我正在向我的Flask RESTful API发送一个请求,并收到一个JSON响应(我相信)。 PHP: $urlContents = file_get_contents("http://192.168.2.201:5000/dataprovider", false, $context); $travelArray = json_decode($urlContents); 我的对象如下所示: stdClass Obje

我无法将JSON请求从PHP传递到Javascript。我正在向我的Flask RESTful API发送一个请求,并收到一个JSON响应(我相信)。 PHP:

$urlContents = file_get_contents("http://192.168.2.201:5000/dataprovider", false, $context);
$travelArray = json_decode($urlContents);
我的对象如下所示:

stdClass Object
(
    [1] => stdClass Object
        (
            [var1] => 
            [var2] => 
            [var3] => 763
            [var4] => 6:22:30
            [var5] => München
            [var6] => 58
            [var7] => Bremen
            [var8] => 239
        )

    [2] => stdClass Object
        (
            [var1] => 
            [var2] => 
            [var3] => 145
            [var4] => 3:12:23
            [var5] => München
            [var6] => 583
            [var7] => Bremen
            [var8] => 9
        )
)
JavaScript

<script type="text/javascript">
            var response = JSON.parse('<?php echo $travelArray; ?>');
            if (response != null) {
                console.log(response);
            } else {
                console.log("test");
            }
        
</script>

var response=JSON.parse(“”);
if(响应!=null){
控制台日志(响应);
}否则{
控制台日志(“测试”);
}
当我按下F12键并查看来源时,它会说:

var response=JSON.parse('
可恢复的致命错误:在第83行的/var/www/html/greenTravelWizard.php中,stdClass类的对象无法转换为字符串
我尝试过几种方法,比如在JavaScript部分([1]:)中使用$urlContents而不是$travelArray,但我还没有弄清楚如何将JSON正确地传递到正确的JavaScript格式

当我还没有通过表单发送请求时,我会收到



注意:未定义变量:第83行/var/www/html/greenTravelWizard.php中的上下文

警告:文件获取内容(192.168.2.201:5000/dataprovider):无法打开流:HTTP请求失败!第83行的/var/www/html/greenTravelWizard.php中不允许使用HTTP/1.0 405方法

除非在回送之前对其进行编码,否则不应对其进行解码

你可能就这么做了

var response = <?php echo $file_get_contents("http://192.168.2.201:5000/dataprovider", false, $context); ?>;
var响应=;
如果您已经编写了一个代理,那么您只需要

<?php
header("content-type: application/json"); 
echo file_get_contents("http://192.168.2.201:5000/dataprovider", false, $context);
?>


然后使用
fetch
从服务器获取它

除了
decode
错误之外,不建议在javascript代码中生成PHP。更标准的工作流程是将PHP文件保存为
data.PHP
,然后使用
fetch(“data.PHP”)在javascript中获取结果
。试试这个:var response=JSON.parse(“”);如果您收到JSON,并希望将其作为JSON传递给客户端,那么为什么要在服务器端解码JSON?第一个选项很好!谢谢!但是您知道如何修复我在尚未通过表单发送请求时遇到的错误吗?
注意:未定义变量:在/var/www/html/greenTravelWizard中的上下文第83行的.php

警告:文件\u get\u contents():无法打开流:HTTP请求失败!第83行的/var/www/html/greenTravelWizard.php中不允许使用HTTP/1.0 405方法
可能他们期望的是POST而不是get
<?php
header("content-type: application/json"); 
echo file_get_contents("http://192.168.2.201:5000/dataprovider", false, $context);
?>