web-dev-qa-db-ja.com

jQueryの投稿JSON

更新日:var valueをサーバに渡したい

こんにちは、同じ古い、同じ古い... :)

<form id="testForm" action="javascript:test()">というフォームと<code id="testArea"></code>というコード領域があります。

このコードを使用して、コード領域にデータを文字列化して表示します。

var formData = form2object('testForm');
document.getElementById('testArea').innerHTML = JSON.stringify(formData, null, '\t');
var value = JSON.stringify(formData, null, '\t');

欲しいのは、このデータをJSONファイルに送ることです。私はこのプロジェクトに取り組んできました: http://ridegrab.com/profile_old/ そしてSubmit Queryボタンを押すとページが移入されます。

また、このスクリプトを使ってデータを送信したいと思います。

    function authenticate(userName, password) {
    $.ajax
    ({
        type: "POST",
        //the url where you want to sent the userName and password to
        url: 'username:password@link to the server/update',
        dataType: 'json',
        async: false,
        //json object to sent to the authentication url
        data: '{"userName": "' + userName + '", "password" : "' + password + '"}',
        success: function () {

        alert("Thanks!"); 
        }
    })
}

繰り返しますが、私が欲しいのは、そのJSONデータをサーバーに送信できることだけです。私のサーバーは正しい場所にデータをupdate or POSTするように設定されています。

169
Patrioticcow

'data'は文字列化されたJavaScriptオブジェクトでなければなりません。

data: JSON.stringify({ "userName": userName, "password" : password })

formDataを送信するには、それをstringifyに渡します。

data: JSON.stringify(formData)

サーバによってはapplication/jsonコンテンツタイプも必要です。

contentType: 'application/json'

ここでも同様の質問に対するより詳細な回答があります。 Jquery Ajax Posting json to webservice

192
Kyle Wild

あなたはこのようなJSONを投稿します

$.ajax(url, {
    data : JSON.stringify(myJSObject),
    contentType : 'application/json',
    type : 'POST',
    ...

オブジェクトをsettings.dataとして渡すと、jQueryはそれをクエリパラメータに変換し、デフォルトでapplication/x-www-form-urlencodedというデータ型で送信します。 charset = UTF-8、おそらくあなたが望むものではない

253
teknopaul

この投稿リクエストをクロスドメインに送信する場合は、このリンクをチェックしてください。

https://stackoverflow.com/a/1320708/969984

サーバーはクロスサイト投稿要求を受け付けていません。そのため、クロスサイトリクエストを許可するようにサーバー設定を変更する必要があります。

2
nizam.sp