我正在编写一个C# Web API 2
网络服务,我正在使用一些AJAX
代码获取一个简单的对象。正确返回对象,但是,如果完全相同的对象具有[Serializable]
属性,则AJAX
代码无法正常工作。
这是一个简单的对象:
public class Simple
{
public int number { get; set; }
public string data { get; set; }
}
以下是AJAX
代码:
function sendRequest() {
$.ajax({
type: 'GET',
url: serviceUrl2,
beforeSend: function (xhr){
xhr.setRequestHeader('Authorization', make_base_auth(userName, password));
}
}).success(function (data) {
alert('Success');
alert('data:' + data.data);
}).error(function (jqXHR, textStatus, errorThrown) {
$('#value1').text(jqXHR.responseText || textStatus);
});
}
上述代码正常运行,并显示包含数据的警报。
如果相同的对象编码如下:
[Serializable]
public class Simple
{
public int number { get; set; }
public string data { get; set; }
}
上述代码无法正常运行,并显示一条警告“data:undefined”
以下是Web API
功能:
[System.Web.Http.HttpGet]
[Route("Getsimple")]
[ResponseType(typeof(Simple))]
public async Task<IHttpActionResult> GetSimple()
{
if (!User.Identity.IsAuthenticated)
{
}
var simple = new Simple();
simple.number = 1;
simple.data = "test data";
return Ok(simple);
}
我是否需要在AJAX
代码中添加特定参数,还是需要在返回对象之前序列化Simple
对象?如果没有,我怎样才能使代码工作?