为了账号安全,请及时绑定邮箱和手机立即绑定

Ajax请求中send(string)的string书写格式是怎样的?

Ajax请求中send(string)的string书写格式是怎样的?

这里的data不能是json或xml格式,那么string格式的书写形式是怎样的呢?另外有哪些途径可以获知,我查了w3c和慕课网都没有呢 //////////////////////////////// var request = new XMLHttpRequest(); request.open("POST", "serverjson.php"); var data = "name=" + document.getElementById("staffName").value                    + "&number=" + document.getElementById("staffNumber").value                    + "&sex=" + document.getElementById("staffSex").value                    + "&job=" + document.getElementById("staffJob").value; request.setRequestHeader("Content-type","application/x-www-form-urlencoded"); request.send(data);
查看完整描述

2 回答

已采纳
?
fishenal

TA贡献10条经验 获得超1个赞

我猜你的问题应该是,ajax请求的参数如何将js 对象 转化为字符串形式。

因为ajax请求接受的参数实际上都是字符串,js对象是无法传过去的,所以你要把对象转成字符串,用的方法就是JSON.stringfy(obj)。


你这段代码,没必要在data赋值的时候用一堆字符串拼接。完全可以先把值赋给data对象,然后直接JSON.stringfy(data)就行了。

查看完整回答
反对 回复 2016-08-03
  • newsudhc3634140
    newsudhc3634140
    老师,当send方法被用作post 请求时,需要接收string类型的参数。所以代码中要拼出一个很长的字符串用作参数而不是json格式或其他。 所以我想问的是这里的string的格式。他应该跟get的url传参一样的格式吧?可是慕课网的例程里 request.open("GET", "serverjson.php?number=" + document.getElementById("keyword").value) number后的后引号放的地方又好奇怪
  • fishenal
    fishenal
    首先json就是一种字符串格式的约定,JSON.stringfy()的功能就是把js对象变成json字符串,也就是你所为的string类型的参数。 然后,get请求的参数和post不完全一样,get是url里传参,?&拼接的,post是json字符串,是通过请求体传的参数,不在url里。 第三,你给的number=就是用js拼一个get需求的字符串参数,其中 document...是js变量,引号没问题。
  • fishenal
    fishenal
    我看到你代码的问题了,你给post传了get类型的参数,这么写 data = {name:xxx,xxx:xxx},send函数里的参数写 JSON.stringfy(data)
?
Despicableme01

TA贡献11条经验 获得超9个赞

你json不也是个字符串么?json对象是不能直接当参数传,不是也得先JSON.stringify()么?

基本格式和get方式放在url后面的一样,也是“键=值&键=值”

查看完整回答
反对 回复 2016-08-02
  • newsudhc3634140
    newsudhc3634140
    request.open("GET", "serverjson.php?number=" + document.getElementById("keyword").value); 但是按慕课网的教程案例,里面后引号怎么放在这里呢?
  • 2 回答
  • 0 关注
  • 3197 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信