【发布时间】: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