【问题标题】:How to get the response of AJAX from JQUERY [closed]如何从 JQUERY 获取 AJAX 的响应 [关闭]
【发布时间】:2016-03-24 10:18:42
【问题描述】:

我知道这个问题已经被问过很多次了,但在我之前问过的人的问题略有不同。我有一个[上传照片的简单页面][1]。这个放在我的本地主机上。我可以选择文件并将图像上传到上传文件夹。我可以得到响应并使用 Firefox 控制台-“网络”选项卡-我可以看到响应-打印为 html 代码。我可以使用 JQuery $("#message").html() 函数获取 DOM。但是我想尝试的是这个。无需打印标签或 JSON 结构数据,只需发送错误代码。回声0;为了成功。回声-1;为失败。实时代码位于 [此处][2]。现在我尝试使用 php 文件 ajax_php_file.php 是这样的:

<?php
if(isset($_FILES["file"]["type"]))
  {
  $validextensions = array("jpeg", "jpg", "png");
  $temporary = explode(".", $_FILES["file"]["name"]);
  $file_extension = end($temporary);
  if ((($_FILES["file"]["type"] == "image/png") || 
       ($_FILES["file"]["type"] == "image/jpg") ||
       ($_FILES["file"]["type"] == "image/jpeg")
  ) AND 
  $_FILES["file"]["size"] < 128000 AND // 125kb files can be uploaded.
  in_array($file_extension, $validextensions)) {
  if ($_FILES["file"]["error"] > 0)
    echo '-1';
  else
  {
    echo '-2';
  if (file_exists("upload/" . $_FILES["file"]["name"])) {
    echo '-3';
  }
  else
  {
  $sourcePath = $_FILES['file']['tmp_name']; // Storing source path of the file in a variable
  $targetPath = "upload/".$_FILES['file']['name']; // Target path where file is to be stored
  move_uploaded_file($sourcePath,$targetPath) ; // Moving Uploaded file
    echo '0';
  }
  }
  }
  else
  {
  echo '-3';
  }
}
?>


  [1]: http://stackoverflow.com/questions/36183350/why-jquery-image-uploader-doesnt-upload-image
  [2]: http://kod.djpw.cz/vpvb

所以没有 html 被发送,只有 1 或 2 个字符。当我在“网络”选项卡上检查 Firefox 控制台时,我只看到 JSON,仅此而已。所以我在这里有两个问题。为什么我没有看到响应,为什么文件上传成功后我没有看到“0”?然后 - 如何修复 JS 代码以在不使用任何标签的情况下获取数字或字符串。这可能吗?我的目标是启动函数,如果值为“0”,将打印报告“文件成功加载”,如果值小于 0,则打印一些错误消息。

【问题讨论】:

  • 您不应该看到 JSON,该数据中没有 JSON。 (好吧,从技术上讲,数字是有效的 JSON 文本,但您没有任何代码来设置正确的内容类型,因此“网络”选项卡应该将其视为 HTML 而不是 JSON)
  • 我问的不是 JSON,而是为什么没有可见的东西。但也许我检查错了并忽略了单个数字,因为现在我在响应控制台中看到值“0”。

标签: javascript php jquery html ajax


【解决方案1】:

在你的 jQuery 中

success: function(data) {
   alert(data); 
}

【讨论】:

  • 试过了,我已经成功上传文件但是我收到了这个消息:-20。为什么有 -20 而不是 0?
  • 可能是因为您没有正确限定if else 条件。似乎这两个条件都满足else { echo '-2';else { $sourcePath = $_FILES['file']['tmp_name']; // Storing source path of the file in a variable $targetPath = "upload/".$_FILES['file']['name']; // Target path where file is to be stored move_uploaded_file($sourcePath,$targetPath) ; // Moving Uploaded file echo '0'; }
  • 你是对的。它打印 -2(文件已存在),然后打印 0 - 成功。但是我在提交之前删除了文件。
  • 感谢您的回答,我认为它已解决。
猜你喜欢
  • 2019-12-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-20
  • 1970-01-01
相关资源
最近更新 更多