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 に答える