2015-07-12 64 views
0

我有一个内嵌图像字符串,我使用$ .ajax发送给PHP。

我无法从PHP中的JavaScript中获取数据。使用$ _POST但是,我能够得到服务器(PHP)的回应。

请让我知道这里出了什么问题。

JavaScript代码段

var data1 = { 
"username": $rootScope.globals.currentUser.username, 
"blob": $scope.cropper.croppedImage  
}; 
data = $.param(data); 

$.ajax({ 
    url: "http://localhost/MyApp/server/user-data/moveUploadedFile.php", 
    dataType: 'json', 
    type: "POST", 
    data: data1, 
    processData: false, 
    success: function(data, textStatus, jQxhr){ 
     var servRet = data; 

     if(servRet.error > 0) 
     {   
      alert(servRet.errorMsg); 
      return;   
     } 
    }, 
    error: function(jqXhr, textStatus, errorThrown){ 
     console.log(errorThrown); 
    } 
}); 

PHP代码片段

<?php 

// Return Values for Jason 
$errorCode     = 0; 
$errorMsg     = "NONE"; 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
$errorMsg = $_POST; 
} 

$retData = array('error' => $errorCode , 'errorMsg' => $errorMsg); 
echo json_encode($retData); 

?> 
+1

如果你改变你的网址>/MyApp的/服务器/用户数据什么happends/moveUploadedFile.php .....不要在AJAX中使用http启动url或任何不允许的内容如果我没有记错 – lauw

+0

您是否使用'print_r($ _ POST)'检查'$ _POST'?检查一下。如果您的图像大于POST大小,则可能是导致失败的原因。 – jagad89

+0

检查你的'$ .param(data);'可能是错字错误。你在前面的行中声明'var data1' –

回答

-1
  1. 敏锐 - 如果您有大量的JSON对象/数组 - 你应该给他们一个简单的字符串。 1.1。您需要在服务器端进行JSON解码。
  2. 总是让一些SQL注入逃脱第一!
  3. 例如,您可以以$_POST['username']的身份访问您的数据。转储您的$_POST阵列。
  4. 当你发送PHP数据回到JS与json_encode() - 你也需要添加一个标题!

代码示例:

<?php 
// Setting escaped data example. 
// You can use much more variants, like sprintf() for example. 
$id = intval(trim($_POST['id']); 
// Returning back the server responce. 
header('Content-type: application/json'); 
echo json_encode($your_array); 
+0

<?php \t //设置转义数据示例。 \t //您可以使用更多变体,例如sprintf()。 \t $ id = intval(trim($ _ POST ['id']); \t //返回服务器响应。 \t header('Content-type:application/json'); \t echo json_encode($ your_array); – koredalin

+0

1.代码做到了。 2.没有SQL数据库,这是无稽之谈。 3. POST阵列正在倾倒。这是最好的做法,但不完全正确。 – Quentin

+0

我无法格式化代码。有一些错误 - 我想。或者我无法退出列表。对不起 - 将代码放入以前的评论中。 – koredalin

0

当我测试它的响应回来的罚款。唯一的问题(除了错误的地方,你将变量名从data更改为data1到代码的一半,然后不久之后交换回来)是,如果错误代码大于零,则客户端代码只会提示错误消息。

您的服务器端代码总是发回一个错误代码为零。

  1. 变化data1data到处
  2. 删除if(servRet.error > 0)或让服务器端代码发送回不同数量的
+0

我没有得到回报的成功功能。但是,当我从“localhost/MyApp/server/user-data/moveUploadedFile.php”将URL更改为/MyApp/server/user-data/moveUploadedFile.php时,事情就会起作用。 –