1

我有一个简单的脚本,它获取文本区域的值并通过 AJAX 发布。如果我发布“??” 我得到奇怪的价值观。如果我在发布之前注销它检索的值,那一切都是正确的。但我的脚本收到的 POST 数据包括 jQuery 版本号。我的代码和结果如下。我应该以某种方式逃避这个吗?

var value = $("#textarea").val();

$.ajax({
        url:'index.php',
        type:'POST',
        data:'text='+value,
        dataType:'JSON',
        success:function(data){}
    });

对于文本的值,我的帖子数据以“jQuery17106460378167700797_1345234676316”的形式出现。

4

2 回答 2

4

这是一个 POST 请求,而不是 GET,应该是:

var value = $("#textarea").val();

$.ajax({
    url:'index.php',
    type:'POST',
    data: {text :  value}, //object
    dataType:'JSON',
    success:function(data){

    }
});

PHP

$value = $_POST['text'];

此外,将 dataType 设置为 JSON 会将响应评估为 JSON 并返回一个 JavaScript 对象。以严格的方式解析 JSON 数据,拒绝任何格式错误的 JSON 并引发解析错误。这意味着任何格式错误的 JSON,并且您的 ajax 调用将失败。

于 2012-08-17T20:39:19.010 回答
0

我不确定您何时执行脚本,是否按下按钮?

如果没有,您需要将其包装,使其仅在 DOM 完成加载后运行:

$(document).ready(function()
{
    var value = $("#textarea").val();
    $.ajax({
            url:'index.php',
            type:'POST',
            data:'text='+value,
            dataType:'JSON',
            success:function(data){}
        });
});
于 2012-08-17T20:42:41.307 回答