Asp.net mvc JQuery$.ajax请求在IE中工作,但在FF和Chrome中不工作

Asp.net mvc JQuery$.ajax请求在IE中工作,但在FF和Chrome中不工作,asp.net-mvc,jquery,Asp.net Mvc,Jquery,下面的JQuery请求在IE中可以正常工作,但在FF和Chrome中不行 我正在从其文件位置运行以下页面,例如。file:///C:/Test/json.htm 以及请求在本地主机上运行的页面 这是什么原因 我怎样才能让它为FF和Chrome工作 <body> <input type="button" value="Search" id="search-button" /> <script language="javascript" type="text/javas

下面的JQuery请求在IE中可以正常工作,但在FF和Chrome中不行

我正在从其文件位置运行以下页面,例如。file:///C:/Test/json.htm 以及请求在本地主机上运行的页面

这是什么原因

我怎样才能让它为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">

因为您是从文件系统托管,并向
localhost
发出请求,所以Chrome和FF会将此视为跨域请求,因此是一个安全问题

如果您直接在位置栏中键入URL,您可能会得到响应


当您从文件系统托管时,Safari更容易处理这些“安全问题”。

@patrick-好的,这是一个跨域问题-那么我该如何处理?其他提供/使用来自其他域的json数据的站点如何解决这个问题?@Nicholas-如果在您的实际站点中,请求将发送到同一域,这不是问题。否则,您可以尝试将datatype设置为
jsonp
,这是一种允许跨域json请求的方法。不完全确定使用
jsonp
需要做哪些调整。@patrick-更改请求和JsonResult以获得解决此问题并进行更好的实践是否可以?@Nicholas-不,您将遇到相同的跨域问题。最终的站点是否将发布到另一个域?@patrick-是-如果可能的话,我想通过POST或GET向另一个域提供json数据,并从中获取json数据。
    $('#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>
[HttpPost]
public JsonResult GetJSONMessage(int id)
{
    return Json(new { message = ("hello world " + id.ToString()) });
}