我通过jQuery 向位于不同域的WCF服务发出POST请求。 它按预期适用于IE9: i)我发出请求, ii)登录对话框弹出窗口, iii)我登录并调用服务。 但是使用IE8和FireFox时 , 不会出现LogIn对话框 ,请求失败。 问题 :为什么它在IE9上进行基于CORS的ajax POST调用没有任何问题,而IE8和Fire-Fox没有? 请参阅以下其他详细信息 : 我有一个WCF RESTful服务,它位于IIS 7.5上的站点上 IIS上的身份validation设置为启用BASIC AUTHENTICATION 。 WCF服务安全模式在web.config中设置为: “ “ 我的web.config也有: 如何使用JavaScript进行调用: $.support.cors = true; // I make CORS enabled request = { Foo: “Alice”, Bar : “Sharma”, }; $.ajax( { type: ‘POST’, url: “foo.bar.co/myService”, contentType: ‘application/json’, data: JSON.stringify(request), success: function […]
我正在使用plupload将文件上传到ASP.NET WebAPI服务。 它在Chrome中运行良好,它在我的开发机器上的IE8 / IE9中运行良好。 但是,当我连接到实际服务器上的网站时,上传文件会导致plupload的error handling程序触发,错误代码为-400,错误消息为“安全错误”。 查看响应和请求标题一切正常。 响应甚至包含正确的返回值! 我猜这与使用https有关,但我不确定它在Chrome中是否正常工作。 (Firefox有一个完全不同的问题,但似乎至少得到了与IE不同的数据。) 我想知道它与请求Accept标头有关,它是: Accept application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* 响应头的Content-Type是text / html,因为application / json导致IE想要保存响应而不是将其传递回脚本。 这是什么“安全错误”,为什么我得到它? 更重要的是,为什么我得到它,即使响应似乎正确回归? 更重要的是,我该如何修复它? 编辑:好的,更多信息。 显然,IE9使用html4运行时进行plupload,它使用iframe来处理文件上传。 当数据返回并且它尝试访问HTMLIFrameElement时,IE9会出现“访问被拒绝”错误。 我理解这有助于防止xss错误,但似乎从iframe读取应该是安全的… 所以任何人都知道解决方法吗?
背景: –我创建了一个托管在本地系统IIS中的WCF服务。 服务公开GET / POST方法和跨域启用,也可以使用https访问。 要使其可访问,请使用自签名证书。 测试: –当我尝试进行跨域ajax调用时,它可以正常用于GET请求和POST请求(只有那些不接受数据作为json的post方法)在IE10 / Edge中。 我可以在chrome / Firebox浏览器中为任何GET / POST请求进行跨域调用。 只有IE 10 / Edge会导致在ajax调用中传递contenttype:accept / json参数时对POST请求进行跨域调用的问题。 研究: –我阅读了很多博客/ mdn,并了解了其中IE不虔诚地追随cors的cors的规范。 我知道cors规范并没有提供自定义标题/标题的值,因为cors preflight已中止。 我正在制作的ajax请求示例: – var postDT = { “postValue”: “test” }; debugger; $.support.cors = true; $.ajax({ type: “POST”, data: JSON.stringify(postDT), url: “http://ateet3371/Service1.svc/postdata”, contentType: “application/json; charset=utf-8”, dataType: “JSON”, processData: true, success: function […]
我在我的MVC应用程序中对我的控制器进行了AJAX调用 Controller/FunctionName $.ajax({ type: “GET”, contentType: “application/json; charset=utf-8”, url: ‘/Controller/FunctionName’, . . . )}; 我正在使用MVC 4并使用JQUERY Ajax函数,如上面的代码所示。 当我从Visual studio运行时它完全正常。 我将它解密到服务器机器,并按预期正常工作 。 在AJAX调用中没有发现任何问题。 现在我正在尝试在我的本地机器IIS中部署它,这与我的服务器版本(IIS 7.5)相同,但是在firebug中获取所有ajax调用的404 。 我validation了构建,甚至我指向我的网络文件夹,我仍在寻找出了什么问题! 它适用于其他IIS,所以它不会是一个URL解决问题是我的意见。 我错过了任何设置或任何及时的想法来解决这个问题会很棒。 谢谢
我试图用IIS 7.5托管ASP.NET MVC4 Web应用程序。 调试应用程序时一切正常(我假设这是因为Windows身份validation)。 但是,当我发布应用程序并浏览到它时,我得到405方法不允许错误: POST http://localhost/ 405 (Method Not Allowed) send i.extend.ajax i.(anonymous function) (anonymous function) 从我读过的内容来看,IIS中的Handler Mappings存在问题,或者web.config中需要一些配置。 无论哪种方式,我都没有找到正确的解决方案。 谁能告诉我我的web.config应该包含在所有POSTS中? 和/或如何在IIS中设置正确的Handler映射,因为我是Web开发的新手,并且发现选项的数量有点压倒性。 抛出错误的javascript是以下内容: $.post(“/”, { latitude: locLat, longitude: locLon, username: $(‘#onlineUsers’).attr(‘itemid’) });