1

textareaの値を取得し、これを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 に答える