1
以下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">
$(函数(){
$('#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>
凡GetJSONMessage由一个ASP.Net MVC JSonResult提供:
[HttpPost]
public JsonResult GetJSONMessage(int id)
{
return Json(new { message = ("hello world " + id.ToString()) });
}
@patrick - 好吧,它是一个跨域问题 - 那么我该如何处理?其他网站如何提供/使用来自其他域的json数据? – 2010-09-05 22:40:35
@Nicholas - 如果在您的实际网站中,请求将被提交给同一个域名,这不是问题。否则,您可以尝试将数据类型设置为'jsonp',这是允许跨域json请求的一种方式。但是,不完全确定需要使用'jsonp'进行哪些调整。 – user113716 2010-09-05 22:46:46
@patrick - 会改变请求和JsonResult GET来解决这个问题,是更好的做法? – 2010-09-05 23:06:33