データを受信し、Json 文字列をクライアントに返す MVC 4 アプリケーションがあります。このコードは、Chrome、Firefox、および IE で問題なく動作します (対象は 8+ のみですが、実際には IE7 で動作することを確認しました)。ただし、Windows の Safari 5.x では動作しません (Mac を持っていないため、テストできません)。
ここにjQueryがあります...(1.9.1を使用... thx Tim B Jamesの質問...以前に言及するのを忘れていました)
$.ajax({
type: 'POST',
url: '@Url.Content("~/Request/ValidateApprover/")',
data: { 'name': input },
success: function (json) {
//do some work here
},
error: function () {
//tell the user that it failed here
}
});
そして、これが呼び出されている私のコントローラーです...
[HttpPost]
public ActionResult ValidateApprover()
{
string emailAddress = "";
string name = this.Request.Form["name"]; //<--the form is blank using Safari 5
if (String.IsNullOrEmpty(name) || String.IsNullOrWhiteSpace(name))
return Json(new { result = "blank" }, "application/json", JsonRequestBehavior.AllowGet);
//...keep going if you got a value other than blank
を使用してコントローラーで結果を読み取ろうとすると、this.Request.From["name"]
Firefox、Chrome、および IE を使用する場合は問題ありませんが、Safari を使用すると空白のフォーム値が取得されます。
編集 1: Safari でデータが適切に渡されているかどうかを確認するために、非常に単純な PHP ページを作成しました。どうやら... IIS と Safari の間の何かが問題のようです。
編集 2:テストする非常に単純な MVC アプリケーションを作成しましたが、そのテストでデータが表示されます....これは、Safari での HTML 検証のようなものだと思います。この編集では、投稿されたリクエスト ヘッダー データも削除しました。
追加のアイデアはありますか?