【问题标题】:What to return for jQuery's ajax data param in callback function?jQuery 的 ajax 数据参数在回调函数中返回什么?
【发布时间】:2013-03-31 00:52:22
【问题描述】:

我使用 jQuery 的 ajax 函数来调用一个 url 异步,如下所示:

jQuery.ajax({
    url: url,
    type: "GET",
    data: {key : value},
    success: function(data) {
        console.log(data);
    }
}

在服务器端,我不知道要返回什么才能在变量data 中得到有意义的东西。控制台的日志只是空字符串。

我已经尝试过return 0return 1return array('status' => 1)return true

背景:我想知道是否在服务器端抛出了任何异常以传递类似 false 或 true 的信息,如果它成功无异常。

编辑:服务器端语言是 PHP

【问题讨论】:

  • 您使用什么服务器端语言? return 在该语言中是否将 html 输出到页面?
  • 您的服务器端语言是什么? PhP、Ruby、C#、..?另外,服务器端方法是什么样的?
  • PHP,不是返回的不是html
  • @tester html, text, json,都一样,就是文本。
  • @tester:I don't know what to return to get something meaningful inside the variable data。我们通常在一个属性中返回一个 JSON 对象,其中包含 HTML 或任何数据,例如:data.returnValue,另一个包含违规对象数组的属性,即:data.violations 和另一个包含类似Success/Error 的状态的属性,即:data.status(我想那个也可能是布尔值)。它们是我们在接收端理解的自定义对象,但您可以设计自己的偏离路线。

标签: jquery ajax callback return


【解决方案1】:

假设您使用的是 PHP,您只需回显一个字符串返回值。

echo "true";
exit;

echo "false";
exit;

然后你可以用 jQuery 解析它:

if ( $.trim(data) == "true" ) {
    console.log("success!")
}
else {
    console.log(data);
}

您也可以回显 0 或 1,但请记住,当它到达 jQuery 时,它仍然是一个字符串,而不是一个数字。对于更复杂的数据,比如数组,可以json_encode。

echo json_encode( $myarray );
exit;

并在 jQuery 的 $.ajax 方法中将 dataType 设置为 "json"

【讨论】:

  • 那么我们需要查看您的 php。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-24
相关资源
最近更新 更多