0

所以,我有一个使用 jQuery 1.6.2 的基本 HTML 页面,我有一个 MVC 应用程序,它在单独的域上提供数据(HTML 页面是本地的,MVC 应用程序不是)。MVC 应用程序发送回一个 JSON 字符串就好了;问题是,在发送回日期时,在日期前后都有一个“/”会破坏 JSON 字符串,而后者又不会变成 javascript 对象。呸。

这是我的 AJAX 调用:

$.ajax({ 
  url:url,
  dataType: 'jsonp',
  success: function(data, status, jqXHR) {
    alert(data);
  },
  error: function(jqXHR, textStatus, errorThrown) {
    console.log(jqXHR); console.log(textStatus); console.log(errorThrown);
  }
});

使用 Chrome 分析器中的“网络”选项卡,我可以看到正在返回一个 JSON 字符串,它具有正确的数据,但有一些格式错误的语法。这是一个示例:

"DateAuthorized":"\/Date(1307789505000-0500)\/",

我尝试使用dataType“text”,但是因为这是一个跨域请求,所以我必须使用jsonp。

有什么想法吗?MVC 应用程序可以使用正则表达式来删除斜杠吗?有没有办法使用 javascript XHttpRequest 来构建手动请求?

啊!

4

1 回答 1

4

它使用默认的序列化程序,即一直存在此问题的JavaScriptSerializer 。另一种方法是使用JSON.NET序列化您的对象。

您始终可以从客户端实现替换——parseJSON 扩展

...或者在发回之前从服务器端格式化它:

return new DateTime(2012, 4, 19).ToLongDateString(); // or ToShortDateString()
于 2012-04-19T20:59:25.630 回答