1、创建ASP.NET应用程序,编写一个测试的Controller。
[HttpPost]
public ActionResult TestIE8Ajax(string name)
{
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("name", name);
return Json(parameters);
}
2、打开Web.config应用配置文件,在里面加入跨域的代码。
<system.webServer>
<!-- 跨域处理 -->
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
</system.webServer>
3、使用WebStrom开发工具编写html和js测试代码。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试IE8Ajax请求问题</title>
<script src="jquery-1.8.3.min.js"></script>
</head>
<body>
<h1>欢迎</h1>
<script>
$.ajax({
type: "POST",
url: "https://localhost:44314/Home/TestIE8Ajax",
data: {"name": "ie8"},
dataType: "json",
success: function (result) {
console.log(result.name);
}
});
</script>
</body>
</html>
4、在Controller那里打一个断点,看看请求有没有成功。第一次我们使用谷歌浏览器运行html文件
请求成功
5、第二次我们使用IETest工具模拟IE8运行html文件。
断点没有进来,Ajax请求没有起作用。
6、解决办法: IE浏览器不支持CORS,在发送ajax请求之前添加jQuery.support.cors=true;即可
7、加上之后再次测试