Jquery 尝试传递具有特定格式的字符串
我知道我试图通过的格式,它应该是这样的:Jquery 尝试传递具有特定格式的字符串,jquery,json,Jquery,Json,我知道我试图通过的格式,它应该是这样的: [{"blah.png"},{"blah2.png"}] var filesObj = {files:[]}; //initialize as javascript object $('#fileList .files .fileName').each(function () { var name = $(this).text(); filesObj.files.push(name); }); console.log(filesOb
[{"blah.png"},{"blah2.png"}]
var filesObj = {files:[]}; //initialize as javascript object
$('#fileList .files .fileName').each(function () {
var name = $(this).text();
filesObj.files.push(name);
});
console.log(filesObj);
$.ajax({
type: "POST",
url: "/FileUpload/ImportCommit",
data: JSON.stringify(filesObj),
dataType: "json"
});
var filesObj = [];
$('#fileList .files .fileName').each(function () {
var name = $(this).text();
filesObj.push(name);
});
$.ajax({
type: "POST",
url: "/dat/Controller",
data: JSON.stringify(filesObj),
contentType: "application/json",
traditional: true,
success: function (result) {
console.log("Success: " + result);
},
error: function (result) {
console.log("Error: " + result);
}
});
但是,我要返回的是:
["blah.png","blah2.png"]
这是我的密码:
var filesObj = [];
$('#fileList .files .fileName').each(function () {
var name = $(this).text();
filesObj.push(name);
});
console.log(filesObj);
$.ajax({
type: "POST",
url: "/dat/Controller",
data: JSON.stringify(filesObj),
dataType: "json"
});
任何帮助都将不胜感激。谢谢
[{"blah.png"},{"blah2.png"}]
将不是有效的JavaScript或JSON。如果您想使用对象而不是字符串,那么循环看起来更像这样
$('#fileList .files .fileName').each(function () {
var name = $(this).text();
filesObj.push({"name": name});
});
在这里,每个对象都有一个键“name”和一个对应于
$(this).text()的值代码>您可以这样做:
[{"blah.png"},{"blah2.png"}]
var filesObj = {files:[]}; //initialize as javascript object
$('#fileList .files .fileName').each(function () {
var name = $(this).text();
filesObj.files.push(name);
});
console.log(filesObj);
$.ajax({
type: "POST",
url: "/FileUpload/ImportCommit",
data: JSON.stringify(filesObj),
dataType: "json"
});
var filesObj = [];
$('#fileList .files .fileName').each(function () {
var name = $(this).text();
filesObj.push(name);
});
$.ajax({
type: "POST",
url: "/dat/Controller",
data: JSON.stringify(filesObj),
contentType: "application/json",
traditional: true,
success: function (result) {
console.log("Success: " + result);
},
error: function (result) {
console.log("Error: " + result);
}
});
对于任何对未来感兴趣的人
我解决这个问题的方法不是通过字符串的格式,而是更改AJAX
调用
我这样设置我的对象:
[{"blah.png"},{"blah2.png"}]
var filesObj = {files:[]}; //initialize as javascript object
$('#fileList .files .fileName').each(function () {
var name = $(this).text();
filesObj.files.push(name);
});
console.log(filesObj);
$.ajax({
type: "POST",
url: "/FileUpload/ImportCommit",
data: JSON.stringify(filesObj),
dataType: "json"
});
var filesObj = [];
$('#fileList .files .fileName').each(function () {
var name = $(this).text();
filesObj.push(name);
});
$.ajax({
type: "POST",
url: "/dat/Controller",
data: JSON.stringify(filesObj),
contentType: "application/json",
traditional: true,
success: function (result) {
console.log("Success: " + result);
},
error: function (result) {
console.log("Error: " + result);
}
});
这将发布一个字符串,如:[“delete icon.png”,“something.exe”]
诀窍是将我的AJAX
修改为POST
,如下所示:
[{"blah.png"},{"blah2.png"}]
var filesObj = {files:[]}; //initialize as javascript object
$('#fileList .files .fileName').each(function () {
var name = $(this).text();
filesObj.files.push(name);
});
console.log(filesObj);
$.ajax({
type: "POST",
url: "/FileUpload/ImportCommit",
data: JSON.stringify(filesObj),
dataType: "json"
});
var filesObj = [];
$('#fileList .files .fileName').each(function () {
var name = $(this).text();
filesObj.push(name);
});
$.ajax({
type: "POST",
url: "/dat/Controller",
data: JSON.stringify(filesObj),
contentType: "application/json",
traditional: true,
success: function (result) {
console.log("Success: " + result);
},
error: function (result) {
console.log("Error: " + result);
}
});
将dataType
更改为contentType
并添加traditional:true
似乎对我起到了作用。原因(我相信)是因为我发布的实际数据在技术上不是JSON
。为了安全起见,我添加了traditional:true
;您正在删除具有键但没有值的对象。你到底想要什么?我正试图将字符串对象发布到列表
服务器端。不幸的是,这样做仍然无法获得我认为需要的格式。我的最终目标是将其传递到我的C#控制器中的列表对象中。由于某些原因,它似乎仍然返回null。不幸的是,这样做仍然不能得到我认为需要的格式。我的最终目标是将其传递到我的C#控制器中的列表对象中。出于某种原因,它似乎仍然返回null。