Javascript 为什么我在ajax请求中得到了请求负载?
我习惯于在我的应用程序中使用jQuery,我在做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
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:非常感谢。。我终于可以解决这个问题了