通过 $ 将 json 数据作为参数发送.阿贾克斯



我想将一个 json 字符串作为一个参数和其他参数发送到后端。我希望收到 jsonp 的结果。

参数为

$param1 = '                          {
                              "MetaData": [
                                    {"Index": "0", "Name": "COLUMN_NAME"},
                                    {"Index": "1", "Name": "VALUE"},
                                    {"Index": "2", "Name": "VALUE_CHANGED"}
                                            ],
                              "Data": [
                                    ["ORDER_NO","*2733","f"],
                                    ["DISCOUNT_NO","1","f"],
                                    ["DISCOUNT_TYPE","S1","f"],
                                    ["DISCOUNT","11.4","t"],
                                            ]
                            } ';
我应该如何

用JS编写语法,我应该如何从PHP端接收它? 当我尝试像下面这样使用它时,它不起作用。

$.ajax({
    url: 'http://... myfile.php',
    data: {PARAMETER1: $param1, PARAMETER2: $param2}
    type: 'GET',
    crossDomain: true,
    dataType: 'jsonp',
    error: function() { alert('Failed!'); }
}).done(function( data ) {
                            $.each(data, function(k,v) {
                               alert( "key: "+k+"  val:" + v);
                            })
                         });

你的Javascript代码对我来说看起来不错。在PHP方面,它将是:

$param1 = json_decode($_GET['PARAMETER1'], true);

然后你可以访问$param1['MetaData'][$i]['Index'],例如。

您正在发送包含两个字符串的对象

在您的 PHP 代码中,您应该使用 json_decode 将它们解码为 JSON

这取决于您的后端代码/框架...只需阅读它们然后解码它们

$(document).ready(function(){

        param1 = ' { "MetaData": [ {"Index": "0", "Name": "COLUMN_NAME"},
        {"Index": "1", "Name":"VALUE"}, {"Index": "2", "Name": "VALUE_CHANGED"} ], 
        "Data": [ ["ORDER_NO","*2733","f"], ["DISCOUNT_NO","1","f"],
        ["DISCOUNT_TYPE","S1","f"],
        ["DISCOUNT","11.4","t"], ] } '; 
         param2 ='2';
         $.ajax({ url: 'ajaxresponse.jsp', 
         type: 'POST',
         data:'{"PARAMETER1":'+ param1+',"PARAMETER2":'+ param2+'}',
         contentType: 'application/json; charset=utf-8',
         dataType: 'json',
         async: false, 
         success: function(msg) { alert(msg); } });
    }); 

最新更新