Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 将对象返回到ajaxweb服务方法_Jquery_Ajax_Web Services - Fatal编程技术网

Jquery 将对象返回到ajaxweb服务方法

Jquery 将对象返回到ajaxweb服务方法,jquery,ajax,web-services,Jquery,Ajax,Web Services,我无法通过ajax调用将javascript对象返回到web方法,如下所示: var person = {"FirstName":"Foo","LastName":"Bar"}; $.ajax({ type: "POST", url: url, data: person, contentType: "application/json; charset=utf-8", dataType: "json", onSuccess: function ()

我无法通过ajax调用将javascript对象返回到web方法,如下所示:

var person = {"FirstName":"Foo","LastName":"Bar"};

$.ajax({
    type: "POST",
    url: url,
    data: person,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    onSuccess: function () { alert('Success!'); },
    onError: function () { alert('Error'); }
});
使用上述方法引发的JSON基元无效。 我会采用如下字符串操作:

var person = {"FirstName":"Foo","LastName":"Bar"};
var json = '{person:' + JSON.stringify(person) + '}';

$.ajax({
    type: "POST",
    url: url,
    data: json,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    onSuccess: function () { alert('Success!'); },
    onError: function () { alert('Error'); }
});

现在,这很好,我可以用这个解决方案逃脱,但生活很艰难,我们不想更艰难!如果有办法直接通过物体,我很乐意听到;)

原因可能是:

data: person
实际上发送了以下信息:

FirstName=Foo&LastName=Bar
因为jQuery将该对象分解为一个POST友好的键/值集。您使用第二个版本的原因是它实际上发送了一个真正的JSON字符串。如果要这样做:

data: JSON.stringify(person)

这可能会奏效。

原因可能是:

data: person
实际上发送了以下信息:

FirstName=Foo&LastName=Bar
因为jQuery将该对象分解为一个POST友好的键/值集。您使用第二个版本的原因是它实际上发送了一个真正的JSON字符串。如果要这样做:

data: JSON.stringify(person)

这可能会奏效。

var json='{person:'+json.stringify(person)+'}'


完成任务:)

var json='{person:'+json.stringify(person)+'}'


作业是否执行:)

您有什么类型的错误?首先,一个示例可以正常工作。@Oyeme:它抛出“无效的JSON原语:FirstName blahh”。。它需要一个Person包装器来重建对象,因此需要进行字符串操作。。它在您的机器上工作??是的,它工作。您已更正JSON格式{“FirstName”:“Foo”,“LastName”:“Bar”};您有什么类型的错误?首先,一个示例可以正常工作。@Oyeme:它抛出“无效的JSON原语:FirstName blahh”。。它需要一个Person包装器来重建对象,因此需要进行字符串操作。。它在您的机器上工作??是的,它工作。您已更正JSON格式{“FirstName”:“Foo”,“LastName”:“Bar”};感谢您指出jQuery将对象分解为键/值集!但是数据:JSON.stringify(person)仍然不起作用。现在它抛出“无法将对象转换为类型‘System.Collections.Generic.IDictionary[System.String.System.object]”,感谢您指出jQuery将对象分解为键/值集!但是数据:JSON.stringify(person)仍然不起作用。它现在抛出“无法将对象转换为类型‘System.Collections.Generic.IDictionary[System.String.System.object]”