2015-07-12 70 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時,事情就會起作用。 –