私はフォームデータからオブジェクトの配列を構築して、処理スクリプトに送信してから、そのデータをAPIに送信します。 APIはCORS ajax要求を許可しないため、まず外部スクリプトに送信する必要があります。Ajax - jQueryを使用してオブジェクトの配列を送信する
私は単純な文字列を返すことができますが、私が持っているデータを文字列化すると、サーバーからの応答は常にPOSTまたはGET(両方試しました)データが空の配列になっています。
JS
$('#enrol').submit(function(e) {
e.preventDefault();
var collection = [];
$('#enrol .form-row').each(function() {
var email = $(this).find('input[type="email"]').val();
var c1Val = $(this).find('.c1').is(':checked') ? 'true' : 'false';
var c2Val = $(this).find('.c2').is(':checked') ? 'true' : 'false';
var c3Val = $(this).find('.c3').is(':checked') ? 'true' : 'false';
var c4Val = $(this).find('.c4').is(':checked') ? 'true' : 'false';
var c5Val = $(this).find('.c5').is(':checked') ? 'true' : 'false';
var c6Val = $(this).find('.c6').is(':checked') ? 'true' : 'false';
var c7Val = $(this).find('.c7').is(':checked') ? 'true' : 'false';
var person = {
'email' : email,
'course1' : c1Val,
'course2' : c2Val,
'course3' : c3Val,
'course4' : c4Val,
'course5' : c5Val,
'course6' : c6Val,
'course7' : c7Val,
}
collection.push(person);
});
var dataString = JSON.stringify(collection);
$.ajax({
url: 'http://www.example.com/script.php',
data: dataString,
crossDomain: true,
success: function(response) {
console.log(response);
},
error: function(response) {
console.log(response);
alert(response.responseText);
}
});
})
PHP私はちょうど、私は単純な文字列データが返さ取得するには、まだ配列がJSON.stringify場合
header("Access-Control-Allow-Origin: URLHERE");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
var_dump($_GET);
私は何を得ることはありませんことですオブジェクトの空の配列として、PHPスクリプトに到着するようだ - または少なくともconsole.logが示唆しているものです。 dataString変数を出力して、データがあることを確認しました。
__I__が得られないものは何ですか? –
このビット - "私は単純な文字列を返すことができますが、私が持っているデータを文字列化すると、サーバーからの応答は常にPOSTまたはGET(両方試してみた)データが空の配列にすぎません。 – DJC
stringifyを使わないで 'data:{mydata:collection} 'を試しました – RiggsFolly