2011-07-29 5 views
2

私はこれについて検索しようとしましたが、私は私の問題を解決することができません。私は自分のWebサービスにリクエストを送信するには、このにようなURLを生成します:私のPHPは私のURLにデータを投稿できません

http://localhost/jQueryStudy/RamagalHTML/processjson3.php? path=update%2FtallyHdr&json= {"SessionID":"hHuCG3Jt1um5gV7kE320Bw7EjG97I4qZ","operation":"add", "transaction_date":"2011-7-29","supplier_id":"10000000108","wood_specie_id":"1", "lines":[{"plank_number":"7","thickness":"5","width":"8","length_t":"8","quantity":"1","board_foot":"26.67","wood_classification_id":"1","price":"15"}],"scaled_by":"WER","tallied_by":"WE","checked_by":"WE","total_bdft":"580.00","final":"N"}

ここで私が今持っている私の現在のjavascriptのコードです:

var dataJSON = { 
    "SessionID": $.cookie("SessionID"), 
    "operation": "add",  
    "transaction_date":$('#tallyDate').val(), 
    "supplier_id":$('#supplierInput').attr("name"), 
    "wood_specie_id":$('#woodSpecie').attr("name"), 
    "lines":plank_data, 
    "scaled_by":$('#tallyScaled').val().toUpperCase(), 
    "tallied_by":$('#tallyTallied').val().toUpperCase(), 
    "checked_by":$('#tallyChecked').val().toUpperCase(), 
    "total_bdft":$('#tallyTotal').val(), 
    "final":"N" 
    }; 
    alert('this is the datajson from add : ' + JSON.stringify(dataJSON)); 

    $.ajax({ 
    type: 'POST', 
    data: dataJSON, 
    url: 'processjson2.php?path=update/tallyHdr', 
    dataType: primeSettings.ajaxDataType, 
    success: function(data) { 
     if ('error' in data) 
     { 
     showMessage('ERROR: ' + data["error"]["msg"]); 
     } 
     else{ 
     $('#tblTallyHdr').trigger('reloadGrid'); 
     } 
    } 
    }); 

マイ.PHPコードはこれです

<?php 
    $data_url = http_build_query (array('json' => $_REQUEST["json"])); 
    $data_len = strlen ($data_url); 

echo file_get_contents("http://localhost:8001/" . $_REQUEST["path"], false, stream_context_create(
    array (
     'http' => array(
      'method'=>'POST', 
      'header' => "Connection: close\r\nContent-Length: $data_len\r\n", 
      'content'=>$data_url 
     ) 
    ) 
)); 

私は自分のプログラムを実行していますが、URLはhttp://localhost/jQueryStudy/RamagalHTML/processjson2.php?path=update/tallyHdrであり、私の要求は実行されませんでした。これで私を助けてください。私は私のPHPを修正する方法を知らない。

+0

'POST'情報はGET''と同じようにURLに送信されません。あなたがURLでそれを見ることができないと言うとき、どうやってそれを観察していますか? –

+0

Firebugでは、自分のコンソールに私のURLに必要なデータがないことがわかります。そして、私はmmy webservceコードを書く私のdelphiプログラムでもトレースします。私のjsonリクエストはnullです。 – jayAnn

答えて

2

すべてのデータをURLの一部として送信する場合は、POSTではなくGETを使用する必要があります。

これは、データプロパティを廃止し、リクエストURLにすべてを追加することが可能です:

$.ajax({ 
    type: 'GET', 
    url: 'processjson2.php?path=update/tallyHdr&json='+dataJSON, 
    dataType: primeSettings.ajaxDataType, 
    success: function(data) { 
     if ('error' in data) 
     { 
     showMessage('ERROR: ' + data["error"]["msg"]); 
     } 
     else{ 
     $('#tblTallyHdr').trigger('reloadGrid'); 
     } 
    } 
    }); 

あなたはPOSTを使用する必要がある場合、その後、あなたは自分のJSONで行くことに変数名を提供する必要があります。

$.ajax({ 
    type: 'POST', 
    data: "json="+dataJSON, 
    url: 'processjson2.php?path=update/tallyHdr', 
    dataType: primeSettings.ajaxDataType, 
    success: function(data) { 
     if ('error' in data) 
     { 
     showMessage('ERROR: ' + data["error"]["msg"]); 
     } 
     else{ 
     $('#tblTallyHdr').trigger('reloadGrid'); 
     } 
    } 
    }); 

詳細情報については、ページの最後の方の例を参照してください。http://api.jquery.com/jQuery.ajax/

+0

これは前のコードですが、Webサービスに多くのリクエストデータを送信する可能性があるため、 'get'メソッドを使用するとクエリ文字列の制限のためにそれを実行しません。なぜ私は 'POST'メソッドを使うのか他の選択肢もありません。 – jayAnn

+0

更新された回答。 – shanethehat

+0

私は知りませんが、まだ動作していません。出力は同じです。 – jayAnn

関連する問題