Googleで検索しましたが、このトピックについてはstackoverflowで多くの質問があります。 「ポストメソッドで送信されていないデータ」など 私の質問に疑問はありません。ajax php javascript:POSTメソッドを使用しているときのエラー
他の質問とほとんど同じです。
のFirefox(V21):
InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable.
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
クローム(V27):これらはエラーMSGある要求がGET
によって送信されると
Uncaught Error: InvalidStateError: DOM Exception 11
、エラーはありません。そして、すべてのGETデータはうまく受け取りました。
しかし、POST
+ setRequestHeader
で送信された場合、上記のようなエラーが発生します。 setRequestHeader
を削除すると、エラーはなくなります。エラーは発生しませんが、POSTデータは受信されません。 i print_r($_POST)
;配列が空です
質問が更新されました。ここでは、発信者である:
goServer({
url : 'users/sign-in.php',
method : 'POST',
data : 'randomId=' + randomId + '&name=' + name + '&password=' + password,
done : function(response) {
alert(response);
},
fail : function(response) {
alert(response);
}
});
は、そしてここで(申し訳ありませんが、長い行)の関数である:
function randomString() {
var str = new Date().getTime(),
str2 = Math.random();
str = str.toString();
str2 = str2.toString();
str2 = str2.substring(2,7);
str += str2;
return str;
}
function goServer(opts) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = requestComplete;
function requestComplete() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
opts.done(xhr.responseText);
} else {
opts.fail(xhr.responseText);
}
}
}
if (!opts.method || opts.method === undefined) {
opts.method = "GET";
}
if (!opts.cache || opts.cache === undefined) {
opts.cache = false;
}
if (opts.cache === false) {
opts.url += '?nocache=' + randomString();
} else {
opts.url += '?nocache=false';
}
if (opts.method === "GET") {
if (opts.data !== '' && opts.data !== undefined) {
opts.url += '&' + opts.data;
}
opts.data = '';
} else {
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
}
xhr.open(opts.method, opts.url, true);
xhr.send(opts.data);
}
ノート、データパラメータ(opts.dataが)、それはによって送信されたURLに設定されています取得する。 POSTによって送信されると、パラメータはxhr.send(opts.data)に設定されます。
質問:POSTデータを正しく取得するにはどうすればよいですか?あなたは、キー/値のペアを含む文字列でなければなりませんopts.data
またxhr.open
を呼び出した後
はあなたに
投稿コード – DevZer0
'print_r(file_get_contents( 'php:// input'));' <あなたのPOSTデータはここにあります。しかし、それは問題を解決しません。投稿コードをお願いします。 – BlitZ
@CORRUPT、質問が更新されました。 –