JQuery $ .ajax请求适用于IE,但不适用于FF和Chrome

时间:2010-09-05 22:18:48

标签: asp.net-mvc jquery

以下JQuery请求在IE中运行良好,但在FF和Chrome中无效。

我从其文件位置运行以下页面,例如file:/// C:/Test/json.htm并请求在localhost上运行页面。

这是什么原因?

我怎样才能让它适用于FF和Chrome?

<body>
<input type="button" value="Search" id="search-button" />
<script language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>

<script type="text/javascript">

$(function(){

    $('#search-button').click(function() {

    var parms = {
            id: 27  
        };

        $.ajax({
            type: 'POST',
            url: 'http://localhost:51621/Test/GetJSONMessage/',
            async: false,
            data: parms,
            dataType: 'json',
            success: function(data, testStatus) {
                alert(data.message);
        }
    });

   });

});
</script>
</body>

ASP.Net MVC JSonResult提供GetJSONMessage的地方:

[HttpPost]
public JsonResult GetJSONMessage(int id)
{
    return Json(new { message = ("hello world " + id.ToString()) });
}

1 个答案:

答案 0 :(得分:3)

由于您是从文件系统托管并向localhost发出请求,因此Chrome和FF会将此视为跨域请求,因此存在安全问题。

如果您直接在地址栏中输入网址,您可能会收到回复。

当你从文件系统托管时,Safari对于那些“安全问题”更容易了。