AJAX发送数据到PHP无法正常工作

时间:2018-08-09 05:57:58

标签: javascript php ajax

我正在尝试使用ajax将来自JavaScript的一些数据发送到服务器,以下是js代码。

   var username = document.getElementById("username_id").value;

   var array = ["p","c"];    
   var jsonString = JSON.stringify(selectedLocation);
    if(!jsonString) jsonString = "";
    var url = "http://anotherserver/createNewUser.php";
    url = 'proxy.php?url='+url;
    $.ajax({ url: url,type: "POST",data: {username:username,datas:jsonString}, dataType: "json",
    success: function (jsonStr) { 
         var username = jsonStr.Username;
    },

     error: function(jqXHR, textStatus, errorThrown){

     }

     });

在php中,我得到的是这样的变量

<?php
$username=$_GET["username"];
$datas = json_decode(stripslashes($_POST['datas']));
$u= array('Username'=>$username);
echo json_encode($u);
return;
?>

我成功获得响应,但是username始终为空。

可能是问题所在。

编辑:

proxy.php

<?php
header('Content-type: application/json');
$url=$_GET['url'];
//echo $url;
if (is_string($url)) {
    $url = urldecode($url);
}
$json=file_get_contents($url);
echo $json;
?>

2 个答案:

答案 0 :(得分:6)

您通过发布方法type: "POST"发送ajax,并通过$_GET在服务器上获取数据
将其更改为$_POST

答案 1 :(得分:2)

在服务器端脚本上使用$ _GET方法时,您正在使用POST方法将数据发送到服务器。

<?php
/*$username=$_GET["username"];*/
$username=$_POST["username"];

$datas = json_decode(stripslashes($_POST['datas']));
$u= array('Username'=>$username);
echo json_encode($u);
/* $data = json_decode(file_get_contents('php://input'), true);
print_r($data); */
return;
?>