Javascript Webix ajax,CORS在除IE之外的任何地方都能工作
昨天早上,来自我创建的webix小部件的AJAX调用在IE中停止工作(测试了IE10和11)。直到昨天早上它还在和IE一起工作 我已经从备份中恢复了昨天早上修改的php文件,但仍然无法使用IE进行AJAX调用。我创建了一个Webix片段来帮助说明我遇到的问题() 如果您在除IE以外的任何地方单击代码片段/示例中的按钮,您将获得一个矫形外科诊所的膝关节外科医生列表。如果你试图在IE中运行相同的代码,你会收到一条“脚本错误”消息 我尝试了GET和POST两种方式来提出这个请求,以避免我在网上看到的IE缓存问题Javascript Webix ajax,CORS在除IE之外的任何地方都能工作,javascript,php,ajax,internet-explorer,webix,Javascript,Php,Ajax,Internet Explorer,Webix,昨天早上,来自我创建的webix小部件的AJAX调用在IE中停止工作(测试了IE10和11)。直到昨天早上它还在和IE一起工作 我已经从备份中恢复了昨天早上修改的php文件,但仍然无法使用IE进行AJAX调用。我创建了一个Webix片段来帮助说明我遇到的问题() 如果您在除IE以外的任何地方单击代码片段/示例中的按钮,您将获得一个矫形外科诊所的膝关节外科医生列表。如果你试图在IE中运行相同的代码,你会收到一条“脚本错误”消息 我尝试了GET和POST两种方式来提出这个请求,以避免我在网上看到的I
有没有人对我如何让我的PHP在IE中重新工作有什么建议?基于CORS场景的Webix文档,您可以做两件事。您可以:
如果您可以访问web服务器的配置,以使用http请求的特定“access Control Allow Origin”头进行响应,则第一个选项非常理想。但如果您没有那么多控制权,那么第二项是您的选择webix库是浏览器嗅探,并使用ActiveX代替IE的XMLHttpRequest:
getXHR:function(){
返回webix.env.isIE
?新的ActiveXObject(“Microsoft.xmlHTTP”)
:新的XMLHttpRequest;
}
如果切换浏览器的用户代理字符串,从而中断此浏览器检测,您将注意到跨域请求不会出现问题
您可以通过以下步骤进行确认:
webix.ajax.prototype.getXHR=function(){
返回XMLHttpRequest
?新的XMLHttpRequest
:新的ActiveXObject(“Microsoft.xmlHTTP”);
}
联机测试:您是否尝试过清除浏览器缓存?是的,并尝试了多个工作站的代码段/示例,所有结果都相同。我已经在Webix支持论坛()上寻求帮助,但由于他们在白俄罗斯,我不知道他们什么时候会回复我。昨晚我还收到Webix的回复,告知我ActiveX问题。他们建议将isIE标志设置为false,但我更喜欢您修改原型的解决方案,因为它似乎更通用,并且不太可能破坏我可能需要做的任何依赖IE的事情。谢谢我已经实现了选项1,这就是为什么它适用于所有其他浏览器。选项2不是一个选项,因为我需要在我的webapp的其他部分发布,而JSONP只适用于GET。