好吧,这是故事:
我有一些数据需要发送到服务器,但他们应该首先变成JSON dataType.
我做了这样的ajax电话:
$.ajax({
url: url, // the url I want to post to.
type: 'POST',
contenttype:'application/json; charset=utf-8',
beforeSend: //some HTTP basic auth stuff
data: {
name:'test',
key:'foo',
key2:'bar'
},
dataType:'JSON'
});
Run Code Online (Sandbox Code Playgroud)
基本上我期待我发送给服务器的数据是:
[name:test,key:foo,key2:bar]
Run Code Online (Sandbox Code Playgroud)
但我得到的是:
name=test&key=foo&key2=bar
Run Code Online (Sandbox Code Playgroud)
我错过了什么?如何将这些数据转换为JSON?
我无法使以下功能正常工作.这似乎是错误的序列化.这是关于不同数据变体的第5次迭代.我最初只是在做数据:{'id':id}就像我在使用WCF一样,但是使用ASMX它只是不起作用.看起来它将数据序列化为id = 1234而不是id:1234,但我对此很新.任何帮助,将不胜感激.哦,我可以直接在浏览器中调用该服务,它会正确返回数据,所以我知道它不是服务.
function getVentID(id) {
//look up id in database and get VentID
alert('id: ' + id);
var jsdata = { "id": + id}
$.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
url: 'services/UserService.asmx/getVentID',
data: jsdata,
dataType: 'json',
success: function (msg) {
alert(msg.d);
},
error: function (a, b, c) {
alert('Error: ' + a.toString() + ' ' + b.toString() + " " + c.toString());
}
});
}
Run Code Online (Sandbox Code Playgroud)
ps我知道有10个相同的问题,但没有一个我能找到或者对我有用的答案.
我在网页中有一个非常复杂的表单.用户实际上构建了一个复杂的对象.使用jQuery处理UI(显示,隐藏部分,复制和删除子表单,......).
简单地在用户提交时发布表单虽然可能,但似乎不是最佳解决方案:很难为字段组合唯一的名称(可以有对象数组)并在服务器端解码整个内容.
我想我应该发布一个对象的JSON表示.我怎么做?
我不打算做一个ajax电话.我想提交表单但使用JSON而不是通常的application/x-www-form-urlencoded表单.
FWIW,后端是ASP.NET MVC.
TIA,
如何从多选列表中将所有选项的.val()和.html()都放到json对象中?最好使用jQuery.
提前致谢!
更多信息:
我正在使用两个多选框.选择左侧框中的项目并将其移动到右侧.一旦他们拥有他们想要的所有项目,他们将推送提交,它将采取右侧选择框中的所有项目并将其移动到主列表.
这是我获取JSON对象后使用的代码:
datalistObject = JSON.parse(response);
if (datalistObject.length){
$(".data-list tbody").empty();
for (var i=0; i < datalistObject.length; i++) {
var newrow = "<tr><td><input type='checkbox' name='user_id' value='" + datalistObject[i][0] + "' class='data-list-check'></td><td>" + datalistObject[i][1] + "</td></tr>";
$(newrow).appendTo($(".data-list tbody"));
}
}
Run Code Online (Sandbox Code Playgroud)
示例html和输出将是:
<select name="selecteditems">
<option value="op1">Option 1</option>
<option value="op2">Option 2</option>
<option value="op3">Option 3</option>
</select>
[
["op1","Option 1"],
["op2","Option 2"],
["op3","Option 3"]
]
Run Code Online (Sandbox Code Playgroud) 我有一个嵌套的json.我想将其作为表单输入值发布.
但是,似乎jquery将"Object object"字符串放入值中.
传递字符串并转换为我需要的本机形式似乎比处理json更容易,因为一旦生成它就不需要改变任何东西.
var json = {
"firstName": "John",
"lastName": "Smith",
"age": 25,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
},
"phoneNumber": [
{ "type": "home", "number": "212 555-1234" },
{ "type": "fax", "number": "646 555-4567" }
],
"newSubscription": false,
"companyName": null
};
Run Code Online (Sandbox Code Playgroud)
成串的形式?
var json = '{
"firstName": "John",
"lastName": "Smith",
"age": 25,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
},
"phoneNumber": [ …Run Code Online (Sandbox Code Playgroud) 我正在向node.js发送带有以下请求的凭证JSON对象:
credentials = new Object();
credentials.username = username;
credentials.password = password;
$.ajax({
type: 'POST',
url: 'door.validate',
data: credentials,
dataType: 'json',
complete: function(validationResponse) {
...
}
});
Run Code Online (Sandbox Code Playgroud)
在服务器端,我想将提交的凭据加载到JSON对象中以进一步使用它.
但是,我不知道如何从req对象中获取JSON ...
http.createServer(
function (req, res) {
// How do i acess the JSON
// credentials object here?
}
).listen(80);
Run Code Online (Sandbox Code Playgroud)
(我在我的函数(req,res)中有一个调度程序,将req进一步传递给控制器,所以我不想使用.on('data',...)函数)
我有名字的表格'config[display][x]', 'config[display][y]', 'config[port]',...,或者我可以创建不同的格式。我想将它序列化为 JS 对象,例如
{config:
display : {x : 'value', y : 'value'},
port : 'value'
}
Run Code Online (Sandbox Code Playgroud)
有人知道现有的解决方案吗?
ps 我可以使用 jQuery 的 .serializeArray() 序列化表单,但我将拥有带有简单 {name : name, value : value} 散列的数组。但是如何创建对象呢?
注意:我将在此处使用特定对象作为示例,但请不要发布特定于此示例的答案; 问题更为笼统.
我写了一些像这样的jQuery代码......
$('#some_button').click(function(event) {
$.post('<some URL>', { <some parameters> },
function() { <do something on success> })
.error(function(x) {
// What is x?
});
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
现在,出于这个问题的目的,我们假设没有关于x传入的对象的文档.
一个显而易见的事情可能是
alert(x);
Run Code Online (Sandbox Code Playgroud)
但所有输出的都是[object Object].
找出未知对象具有哪些属性/方法可能是一种简单的方法?我正在考虑在调试阶段我刚刚写的东西,当然没有生产代码.
您可以假设jQuery可用.
我完全知道for (...),但肯定这并不意味着没有更好/更简单的方法 - 我认为jQuery可能有内置的东西......
在javaScript中,使用jQuery库,我需要:
使用JSON很简单.
// Write JSON Cookie
var foo = JSON.stringify(myValue);
writeCookie(foo);
// Read [Eat?] JSON Cookie
var foo = JSON.parse(readCookie("myArray"));
if(foo.length) {
myArray = foo;
}
Run Code Online (Sandbox Code Playgroud)
(注意:writeCookie(); readCookie();我根据quirksmode.org上建议的cookie函数编写了2个函数.)
现在,我的用户群涉及很多IE8之前的浏览器.(这不支持这些方法).所以我想转向jQuery插入漏洞.解析JSON 很简单:
// Read JSON Cookie with jQuery
var foo = jQuery.parseJSON(readCookie("myArray"));
if(foo.length) {
myArray = foo;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何使用jQuery将一个JSON对象写入cookie(这样它将适用于早期版本的IE).
谢谢
更新:仍然混淆为什么jQuery会提供parseJSON函数而不是writeJSON函数?