gpt4 book ai didi

javascript - JSON PHP 脚本将 Javascript 附加到 JSON 数据

转载 作者:行者123 更新时间:2023-11-30 17:51:58 25 4
gpt4 key购买 nike

我有以下代码以 JSON 格式将数据返回到移动应用程序..

    if($_POST){?>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDDEBh6r9r7-VxyYqRehzYZp903M69_W7s&sensor=false&libraries=geometry"></script>
<script src="jquery-1.10.2.min.js"></script>
<?php
$eventid = $_POST['eventid'];
$uid = $_POST['uid'];
$email = $_POST['email'];
$twitterusername = $_POST['twitterusername'];
$instausername = $_POST['instausername'];

.....more PHP code..
?>

<script type="text/javascript" code="maps_code1">

var mapCanvas;
var container;
var zoom = 11;
var centerPoint = new google.maps.LatLng(<?php echo $eventimage_latitude;?>, <?php echo $eventimage_longitude;?>);
<?php
$l = 1;
foreach($user as $userData){
?>
var LatLng<?php echo $l;?> = new google.maps.LatLng(<?php echo $userData['latitude'];?>, <?php echo $userData['longitude'];?>);
....


function setMarker(marker, point, html, title, icon) {
if (marker) {
marker.setPosition(point);
return marker;
}

marker = new google.maps.Marker({
position : point,
title : title,
icon : icon,
draggable : true,
map : mapCanvas
});




<?php $j = 1;
foreach($user as $userData){?>
user_marker<?php echo $j;?> = new google.maps.Marker({
position: LatLng<?php echo $j;?>,
title: '<?php echo $userData['checkin_email'];?>',
map: mapCanvas,
draggable: false
});
<?php $j++;
}?>
google.maps.event.addListener(marker, 'click', function() {
infoWnd.setContent(html);
infoWnd.open(map, marker);
});

print json_encode($data);

所以我有一个 PHP 代码..而不是其中的 JS 代码,更多的 PHP 代码将数据存储在 $data 数组中..最后我打印 JSON 编码的数组。

此 JSON 由移动应用使用。在我添加 JavaScript 之前,一切都运行良好。它现在甚至可以工作,执行需要执行的操作。但是 App 无法解析 JSON,因为它还获得了所有 Javascript 作为响应。

基本和网页一样的情况。我们在页面上看不到 JS..它工作得很好,但是当你查看源代码/html 时,所有 JS 都在那里。

我该如何处理?在应用程序端进行任何过滤吗?或者改变 JSON 的服务方式?只是不希望 JS 与 JSON 一起返回。

谢谢!

最佳答案

您可以将要注入(inject) DOM 的 JS 作为键添加到您的 JSON 对象中,然后在您的代码中手动将其拉出并对其求值。您的 AJAX 成功函数需要一个以 { 开头的有效 JSON 对象。通过将纯文本添加到响应中,您已使 JSON 无效。

在回显数据之前执行此操作:

$data['custom_js'] = '<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDDEBh6r9r7VxyYqRehzYZp903M69_W7s&sensor=false&libraries=geometry"></script><script src="jquery-1.10.2.min.js"></script>';

这会将 JS 添加到可以在成功回调中访问的 JSON 对象。你可以这样做:

$.ajax({
...
success : function (response) {
if (typeof response.custom_js === "string") {
$("body").append(response.custom_js);
}
...
}
...
});

JSON 代表 JavaScript Object Notation,这意味着来自服务器的 JSON 响应基本上需要是 Javascript 对象。您应该能够获取响应并在 JS 中设置一个等于它的变量,而不会产生任何解析错误。像这样的东西:

<script>
var someVar = <?php echo json_encode(array("key" => "val")) ?>;
</script>

关于javascript - JSON PHP 脚本将 Javascript 附加到 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18837521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com