以下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()) });
}
答案 0 :(得分:3)
由于您是从文件系统托管并向localhost
发出请求,因此Chrome和FF会将此视为跨域请求,因此存在安全问题。
如果您直接在地址栏中输入网址,您可能会收到回复。
当你从文件系统托管时,Safari对于那些“安全问题”更容易了。