美文网首页
理解ajax跨域

理解ajax跨域

作者: Gaizka | 来源:发表于2019-11-26 11:49 被阅读0次
    1. 跨域产生的原因

    2. ionic项目什么情况下会产生ajax跨域问题

    3. 针对ionic项目开渔问题我们怎么去避免

    跨域产生的原因:

    跨域问题出现在B/S架构,C/S架构不会出现,原因是,B/S架构 ,brows浏览器自己有同源政策检测,如果发现不是自己的orgin就会禁止转发和获取js/jtml对象以及XMLHttpRequest请求。

    ionic项目什么情况下会产生ajax跨域问题

    当我们执行ionic run ios/android 不会出现跨域问题, 当我们执行 ionic server 或者 ionic run ios/android -l 时会出现跨域问题,原因时 ionic server 时本地的浏览器 chrome/safari 会开启一个本位的web服务,ogrin是127.0.0.1 即 localhost , 任何发送到主机而不是localhost:8100的AJAX请求,都将以localhost:8100作为其origin,因此需要经过CORS预检请求,来查看是否有权限访问该资源; ionic run ios/android -l 首先也是开启一个服务,orgin为 192.168.123.1 ,任何orgin不是 192.168.123.1的请求都会被拦截。

    ionic项目怎么避免 跨域问题

    1. 在使用调试的使用 关闭浏览器的同源检测禁止,但是启动会看到当前浏览器不安全的提示:

    ionic serve 需要调试http --disable-web-security
    //chrome 浏览器
    open -a "Google Chrome" --args --disable-web-security  --user-data-dir
    或者
    /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security  --user-data-dir
    Chrome 66之后使用这个命令
    open -a "Google Chrome" --args --disable-web-security --user-data-dir --disable-features=CrossSiteDocumentBlockingIfIsolating
    
    //safari 浏览器 
    open -a '/Applications/Safari.app' --args --disable-web-security --user-data-dir 
    

    2. 设置前端代理服务器

    3. 后端服务器允许任何orgin进行访问 即设置请求头

    相关文章

      网友评论

          本文标题:理解ajax跨域

          本文链接:https://www.haomeiwen.com/subject/jligxctx.html