我开发了一个 Web 应用程序,它向与托管 Web 应用程序的服务器不同域中的服务器上的 Web 服务发出 ajax 请求。
我已将 Web 服务配置为进行飞行前检查以设置必要的标头以允许跨域请求。
在 Web 应用程序中,我使用 JQuery 客户端来访问 Web 服务。我已经在 Jquery 命令上设置了属性以允许跨域访问。
$.support.cors = 真;
在 Chrome 中,这一切都很好。然而,在 IE9 中,跨域行为只是部分成功。所有获取请求都有效。但是内容类型为 application/json 的 post 请求失败,因为 IE9 拒绝使用除 text/html 之外的任何 content-type 发出 post 请求。IE9 切换请求的内容类型,请求在服务器上失败,请求为 400 错误。
我读过 IE10 的跨域请求可以像在 Chrome 中一样工作。但是在刚刚测试之后,我发现 IE10 与 IE9 具有相同的行为。浏览器不会将 content-type 设置为 application/json。所以发布请求失败。
有谁知道在 IE10 中是否可以使用除 text/html 之外的其他内容类型进行跨域发布请求。这使得编写除了显示数据之外的其他任何事情的 Web 应用程序变得极其困难。
我需要对 Jquery 请求进行其他设置吗?还是在服务飞行前?