簡體   English   中英

$ .ajax到PHP的JSON數據不起作用

[英]$.ajax JSON data to PHP is not working

我有一個內聯圖像字符串,該字符串要使用$ .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);

?>

當我對其進行測試時,響應返回正常。 唯一的問題(除了拼寫錯誤之外,您在代碼中途將變量名從data更改為data1 ,然后不久后又換回來了)是客戶端代碼僅在錯誤代碼大於零時才警告錯誤消息。

您的服務器端代碼總是發回錯誤代碼為零。

  1. data1更改為無處不在的data
  2. 刪除if(servRet.error > 0)或讓服務器端代碼發回另一個數字
  1. 微妙-如果您有大型json對象/數組,則應將它們作為簡單字符串發送。 1.1。 您需要在服務器端進行JSON解碼。
  2. 始終先進行一些sql注入轉義!
  3. 例如,您可以使用$_POST['username']訪問數據。 轉儲$_POST數組。
  4. 當您使用json_encode()將php數據發送回JS時-您也需要添加標頭!!!

代碼示例:

<?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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM