JS不能使用PHP脚本。我没有回应。
这是PHP脚本:
<?php
$a = array('data' => 'Hello');
echo json_encode($a);
?>
这是JQuery脚本:
function getCityAndState(data, location)
{
var jsonString = {"zipCode": data};
var outR = outputResults
alert("JSON String:" + jsonString.zipCode);
if (location === "living")
{
$("#livingCityField").val("");
$("#livingStateField").val("");
alert("Inside getCityAndState: " + location);
//$.get("testfile.php",
// {zipCode: data},
// outR,
// 'text'
// );
$.getJSON("testfile.php",function(d) {
alert("JSON Data: " + d.data);
});
}
我做错了什么?
alert("Inside getCityAndState: " + location);
按预期执行,但没有任何反应。抛出没有异常,没有错误消息,没有。它根本不会返回任何数据。
我使用Aptana 2作为IDE,以防万一。
答案 0 :(得分:0)
您的PHP脚本缺少标题,它应该是:
<?php
header('Content-type: text/json'); //added line
$a = array('data' => 'Hello');
echo json_encode($a);
?>
答案 1 :(得分:-1)
jQuery的$.getJSON()
函数的第二个参数不是返回数据的回调,它应该是包含发送到服务器的附加数据的映射或字符串。回调函数是第三个参数。
我没有对此进行测试,但它应该是这样的:
$.getJSON('ajax/test.json', "", function(data, textStatus, jqXHR){
//In here you should have access to the data return by the server thourgh the "data" variable.
});
编辑:正如@Rocket和@Tadeck所指出的那样,可以省略可选参数,并且“重新排列”,因为jQuery会检查参数的类型。 getJSON()
函数的第二个和第三个参数就是这种情况。
鉴于此,虽然这不应该是问题的根源,但它确保函数以预期的顺序接收所有参数,并且它应该产生与省略第二个参数相同的结果。