【问题标题】:unable to get json data from server无法从服务器获取 json 数据
【发布时间】:2016-08-03 23:18:29
【问题描述】:

我的服务器端代码是:

$bus = array(
       'meaning' => $name
       );

$jsonstring = json_encode($bus);
echo $_GET['callback'].'(' . $jsonstring. ')';

屏幕上显示的值是正确的 - ?word=heart({"meaning":"heart"}) 但是当我用下面的代码阅读它时,它会将含义的值打印为11200665987893779229_1460521505942

$(document).ready(function(){
    $.getJSON('http://mydomain?callback=?','word=heart',function(res){
     document.getElementById('print').innerText=''+res.meaning;
    });
});

但是当我这样做时:

$bus = array(
       'meaning' => 'heart'
       );

它正在打印正确的值,即heart

我不明白为什么会发生这种情况以及如何获得正确的值(我正在访问来自不同域的数据)

【问题讨论】:

  • $name = substr($_GET['callback'],6);我已经印出了它的价值和它的心
  • 问题可能出在这一行echo $_GET['callback'] . '(' . $jsonstring. ')'; 你认为它正确吗
  • 它是正确的,它正在打印这个 ?word=heart({"meaning":"heart"}) 正如我提到的一切都工作正常但如果我使用变量谎言 $name="heart"它不是直接使用“heart”而是在客户端打印一些代码,但结果仍然可以通过在服务器端的屏幕上回显来正确打印
  • 在成功回调中试试这个console.log(res)
  • $bus = array(); $bus['meaning'] = $name 然后访问它

标签: javascript php json web-services cross-domain


【解决方案1】:

JSON.parse() 将传递给函数的任何 JSON 字符串转换为 JSON 对象。

$(document).ready(function(){
$.getJSON('http://mydomain?callback=?','word=heart',function(res){
obj = JSON.parse(res);
 document.getElementById('print').innerText=''+obj.meaning;
});

});

a similar post is here

【讨论】:

  • 未捕获的 SyntaxError: Unexpected token o
猜你喜欢
  • 2021-09-08
  • 1970-01-01
  • 2017-11-20
  • 1970-01-01
  • 2018-05-27
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
相关资源
最近更新 更多