Javascript 为什么我在ajax请求中得到了请求负载?

Javascript 为什么我在ajax请求中得到了请求负载?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我习惯于在我的应用程序中使用jQuery,我在做ajax请求,如下所示: function save_marker(Marker, mRuas, replaceWin) { //Save new marker using jQuery Ajax var mLatLang = Marker.getPosition().toUrlValue(); //get marker position var myData = {ruas : mRuas, latlang : mLatL

我习惯于在我的应用程序中使用jQuery,我在做ajax请求,如下所示:

function save_marker(Marker, mRuas, replaceWin)
{
    //Save new marker using jQuery Ajax
    var mLatLang = Marker.getPosition().toUrlValue(); //get marker position
    var myData = {ruas : mRuas, latlang : mLatLang }; //post variables
    console.log(replaceWin);        
    $.ajax({
      type: "POST",
      url: "maps/map_process.php",
      data: myData,
      success:function(data){
            replaceWin.html(data); //replace info window with new html
            Marker.setDraggable(false); //set marker to fixed
            Marker.setIcon('img/b.png'); //replace icon
        },
        error:function (xhr, ajaxOptions, thrownError){
            alert(thrownError); //throw any errors
        }
    });
}
如果我在Chrome开发者工具的网络选项卡下查看我的ajax请求,我会发现ruas和latlang就像表单数据一样发送。 表单数据: ruas:1234 拉特朗:-8.459511115.066144

最近,我正在测试一个类似于上述的ajax请求,我使用以下方法进行测试:

var dataPath = {
        tahun          : year,
        kawasan      : areal,
        path        : pathSend,
        idGenangan  : jmlRecord
    };

    $.ajax({
        url  :'maps/modul/genangan-sql-drawing.php',
        type    :'POST',
        dataType:'json',
        data    : JSON.stringify(dataPath),
        contentType:"application/json",
        success: function(data, xhr){
            alert("Sukses Menggambar Genangan");
        },
        error:function(xhr, ajaxOptions, thrownError){
            alert(thrownError);
        }
    });
我注意到数据发送方式的不同。在这种情况下,数据像请求负载一样发送

**Request Payload**
{"tahun":"2012","kawasan":"Kawasan Genangan 2012","path":[{"lat":-8.240032737708358,"lng":115.11680603027344},{"lat":-8.331082833500302,"lng":114.98222351074219},{"lat":-8.363692651835823,"lng":115.26374816894531}],"idGenangan":1}

**Request Header**
POST /bootstrap/maps/modul/genangan-sql-drawing.php HTTP/1.1
Host: localhost
Connection: keep-alive
Content-Length: 230
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://localhost
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
Content-Type: application/json
Referer: http://localhost/bootstrap/area-genangan.php
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,id;q=0.6
问题是: 1.请求负载和表单数据之间有什么不同? 2.为什么我得到了请求有效载荷? 3.如果我想用表单数据更改请求负载。我该怎么办


我希望任何人都能理解我的意思,并能帮助我。

您不能真正发送javascript对象,因此jQuery序列化数据并将其作为formdata发送。当你发送一个JSON字符串时,它是作为字符串发送的,而不是formdata,因此如果你想以formdata的形式发送,请停止字符串化。查看这些链接,@adeneo是的,你是对的,当我停止使用stringify时,数据将作为表单数据发送。但是,不幸的是,我发现了错误消息“SyntaxError:Unexpected token<”。您对我的问题有什么解决方案吗?您使用的是JSON数据类型,而该数据类型是您希望从服务器返回的数据类型,因此除非您将有效的JSON数据从服务器返回到ajax请求,否则您将得到一个解析错误,通常确切的错误消息为
@adeneo:非常感谢。。我终于可以解决这个问题了