私はAjax呼び出しによって常に変化しているセッション値をいくつか持っています。 POSTデータを処理して値を設定するハンドルを取得できないようです。AJAXコールのPOSTデータを読み込みます。
私がここに渡しているのは、以下のコードのような文字列です。 AJAX呼び出しのはここ
は次のとおりです。私はこのプログラムのPHPのバージョンで正常に働いてきたが、私のASP版はデータをつかんされていない
var sessionValues = [];
str = {"PID": "1", "Level": "Main", "MenuName": "Kitchen", "State": "CHECKED"}
sessionValues.push(str);
var postObj = {"sessionData": sessionValues};
$.ajax({
type: 'POST',
data: {'data': postObj},
url: 'setSession.asp'
}).done(function(response){
console.log(response);
})
。ここで私のPHPのバージョンとASPのバージョンは私がそれを変換することができます最高です。
<-- php setSession.php works fine -->
$data = $_POST['data'];
foreach ($data['sessionData'] as $key => $value) {
$projectProduct = "1";
$level = $value["Level"];
$menuName = $value["MenuName"];
$state = $value["State"];
$_SESSION['PID:'.$projectProduct][$level][$menuName]['menu_state'] = $state;
echo "[PID:".$projectProduct."][".$level."][".$menuName."][".$state."]<br>";
}
0 =>>>>> Array<br>[PID:1][Main][Kitchen][CHECKED]
は、ここで私はそれがどのようなデータを持っていることはありませんが、すべてのエラーをスローしないように見えます
' setSession.asp
data = Request.Form("data")
For Each part In data("sessionData")
projectProduct = part("PID")
level = part("Level")
menuName = part("MenuName")
state = part("State")
Session("PID:" & projectProduct).Item(level).Item(menuName).Remove("menu_state")
Session("PID:" & projectProduct).Item(level).Item(menuName).Add "menu_state", state
response.write("[PID:" & projectProduct&"]["&level&"]["&menuName&"]["&state&"]<br>")
Next
出力空白のASPで同じことをしたいです。私はPOSTオブジェクトを正しく読んでいますか?
[編集]ここで
はRAW POSTデータはフィドラーからキャプチャされます。
ここdata%5BsessionData%5D%5B0%5D%5BPID%5D=1&data%5BsessionData%5D%5B0%5D%5BLevel%5D=Main&data%5BsessionData%5D%5B0%5D%5BMenuName%5D=Kitchen&data%5BsessionData%5D%5B0%5D%5BState%5D=CHECKED
は、私はこれは私がすべきのように見えることはstring-
data[sessionData][0][PID]=1&data[sessionData][0][Level]=Main Level Plan&data[sessionData][0][MenuName]=Kitchen&data[sessionData][0][State]=CHECKED
にURLデコードを使用現在使用している文字列をループすることができる
For Each part In Request.Form("data[sessionData]")
しかし何も起こりません。私がのRequest.Formを見て、単純なループを追加し、ここでそれが見ているものです。
for each x in Request.Form
Response.Write(x)
Next
' outputs -> data[sessionData][0][PID]data[sessionData][0][Level]data[sessionData][0][MenuName]data[sessionData][0][State]
つ以上の場合、私はちょうどを通じて読んで正しく、その文字列を処理し、または複数れているもの、これはダウンになると思います送信されます。正しい?
? – Lankymart
これはFiddlerが送信するすべてのものです。レスポンスバイト(Content-Typeによる) -------------- 〜ヘッダー〜:252 text/html:20 – user1601513
これらは最初の行ですフィドラーから - 要求数:送信1 バイト:1,446 \t \tを(ヘッダー:1,240;身体:206)を受信 バイト:272 \t \t(ヘッダー:252;本体:20) – user1601513