0

我正在尝试使用 JQuery 将一些数据传递给 Web 服务。这是一个简单的客户端:

<script type="text/javascript">
    $(function () {
        $.ajax({
            type: "POST",
            url: "webservices/gammeList.php?lang=fr",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: onSuccess,
            error: onError
        });
    });

    function onError(result) {
        alert("error");
    }

    function onSuccess(result){
        alert(JSON.stringify(result));
    }
</script>

和一个简单的服务器:

<?php
    if (isset($_GET['lang']) && !empty($_GET['lang'])) {
        $lang = $_GET['lang'];
    } else {
        $lang = "en";
    }

    echo (json_encode($lang));
?>

它工作正常,但我想以这种方式使用数据设置传递数据:

$(function () {
        $.ajax({
            type: "POST",
            url: "webservices/gammeList.php",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: {lang: "fr"},
            success: onSuccess,
            error: onError
        });
});

我总是得到“en”作为来自网络服务的响应。那么在这里,我应该使用相同的方法$_GET['lang']来访问输入数据吗?我究竟做错了什么?

编辑:我换$_GET['lang']了,$_POST['lang']但还是不行。

4

5 回答 5

2

您可以使用服务器端 $_REQUEST,它适用于 POST 和 GET 方法:

$_REQUEST['lang']
于 2013-06-25T11:59:02.990 回答
1

$_GET["Key"]当您在 POST 变量中传递数据时,您使用的是不正确的。

你可以使用$_REQUEST["key"]

$lang = $_REQUEST["lang"];

或者$_POST["key"]

$lang = $_POST["lang"];

检索发送到 PHP 脚本的数据。

要阅读有关这些参考链接的更多信息,请参阅下面给出的链接。

$_REQUEST
$_POST

于 2013-06-25T12:08:04.293 回答
0

$_GET['lang']了之后$_POST['lang']还是不行。我删除了以下行:

contentType: "application/json; charset=utf-8"

然后使用默认值'application/x-www-form-urlencoded; charset=UTF-8',它起作用了。

于 2013-06-26T09:31:05.297 回答
0

所以然后使用服务器端$_POST,而不是$_GET

$_POST['lang']
于 2013-06-25T11:57:05.607 回答
0

你应该通过array喜欢json_encode function

<?php
    // Also you are using post method in ajax so use $_POST or $_REQUEST here
    if (isset($_REQUEST['lang']) && !empty($_REQUEST['lang'])) {
        $lang = $_REQUEST['lang'];
    } else {
        $lang = "en";
    }

    echo (json_encode(array($lang)));// here passing array to json_encode
?>
于 2013-06-25T12:02:46.150 回答