如何将PHP中的JSON响应传递给Javascript
我无法将JSON请求从PHP传递到Javascript。我正在向我的Flask RESTful API发送一个请求,并收到一个JSON响应(我相信)。 PHP:如何将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
$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);
?>