debug socket在chrome下可以正常访问浏览器支持jquery,在IE9下访问数据就没有了。 检查ajax请求流程。 由于没有数据,说明请求失败。 复制错误反弹里的信息,确实是没有进入成功反弹; $.ajax方法仍然执行错误
如果是浏览器安全机制导致拒绝访问,该如何解决?
点击IE浏览器的“工具->Internet选项->安全->自定义级别”浏览器支持jquery,在“其他”选项中选择“通过域访问数据源”为“启用”或“提示”,然后单击“确定”。 (不过这种方法需要用户自己设置,不太实用)
解决方案1.解决ajax时,出现NoTransport。 使用ajax前添加:jQuery.support.cors=true。
jQuery.support.cors = true;//浏览器支持跨域访问
$.ajax({
url: "http://23y8q85354.qicp.vip/getUserInfo",
type: "GET",
dataType: "json",
async: true,
cache: false,
crossDomain: true,
success: res => {
console.log(1,res)
},
error: err => {
console.log(2,err)
}
})
$.ajax属性及用法
2.在jquery之后引入jQuery-ajaxTransport-XDomainRequest插件
如果以上方法不行,尝试nginx配置反向代理
location /api/ {
rewrite ^/api/(.*)$ /$1 break; #所有对后端的请求加一个api前缀方便区分,真正访问的时候移除这个前缀
# API Server
proxy_pass http://132.122.14.6:9800/; #将真正的请求代理到serverB,即真实的服务器地址,ajax的url为/api/user/1的请求将会访问http://www.serverB.com/user/1
}