時嘗試生成一個動態JSONP回聲,但JS AJAX調用後我得到了我的檢查工具的錯誤:生成有效JSONP與多維的PHP陣列
Uncaught ReferenceError: jQuery191019304498913697898_1365868235193 is not defined index.php:1
PHP:
<?php
header('Content-type: application/javascript; charset=utf-8');
$array = array();
array_push($array, array('name' => 'A', 'host' => 'A.com'));
array_push($array, array('name' => 'B', 'host' => 'B.com'));
//$jsonp = json_encode($array, JSON_FORCE_OBJECT);
$jsonp = json_encode($array);
if(isset($_GET['callback']))
{
echo $_GET['callback'].'('.$jsonp.')';
}
else
{
echo $json;
}
?>
JS:
$.ajax({
username: username,
password: password,
url: url,
dataType: 'jsonp',
crossDomain: true,
ifModified: true,
success: function (data, status, jqXHR) {
console.log(data);
$.each(data, function(index, value) {
console.log(value['name']);
});
}
});
AJAX調用響應:
jQuery191019304498913697898_1365868235193([{"name":"A","host":"A.com"},{"name":"B","host":"B.com"}])
你有什麼想法嗎? 我的錯誤在哪裏?
感謝
不知道這是否會成爲一個問題,但你錯過了你的分號:echo'$ _GET ['callback']。'('。$ jsonp。');'; – 2013-04-13 16:12:53
另外,您正在打印回覆(然後到JS)回調GET參數。這就是爲什麼JavaScript抱怨「未捕獲的ReferenceError」。除非在javascript中有效的變量,否則不要打印該值。 – ricardohdz
@navnav:我添加了缺少的分號,但同樣的錯誤:/ – Arsch5000