• ajax 跨域请求解决方案


    1.为什么出现跨域:

    前端和后端同一个项目下,ajax请求的地址是localhost同一个端口是话,是不会出现跨域问题的,所以相反前端和后端分开时,ajax请求的地址或者端口不是跟后台相同时就会出现跨域问题。

    2.常见请求错误:

    第一种:后端处理就可以解决跨域问题,举例如下-------------------------------------------------------------------------

    一看这个ajax的方法就是特别的简单,唯一有变化的就是url,因为访问的不是本地地址(ps:放心这个url是我瞎写的,这是一个模拟)

    请求后,你会发现出现如下的错误,错误的意思大概就是没有没有设置请求头(ps:很好奇明明访问的地址是www.aaa.com为什么会出现localhost,因为我随便截的图,把localhost想象成图上的那个地址就好了)

    解决的办法就是服务端的需要被外请求控制器中加入这几行代码即可

    response.setHeader("Access-Control-Allow-Origin", "*");
    response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
    response.setHeader("Access-Control-Allow-Credentials","true");

    总结:前端还是正常的请求,但是后端需要去处理,如果你是前后端都搞得程序员,一看就懂了

    缺点:服务端是保存不了session的

    ----------------------------------------------------结束--------------------------------------------------------

    第二种:用jsonp

    还是用刚才的请求,然后改成jsonp

    后台代码:

    总结:用jsonp就不需要加入什么请求头了,后台返回按照jsonp的格式就可以了

    优点:服务端可以保存session

  • 相关阅读:
    Oracle创建自增字段方法-ORACLE SEQUENCE的简介
    iOS项目开发实战——使用Xcode6设计自己定义控件与图形
    准备开源用javascript写Tomcat下的WebApp的项目
    Codeforces Round #256 (Div. 2) B. Suffix Structures
    静默方式安装10g数据库软件+升级patch+手工建库
    oracle 数据库开发面试题
    待机异常篇
    HTTP状态码(HTTP Status Code)
    POJ3126——Prime Path
    RHEL7 -- 通过gerp使用正则表达式
  • 原文地址:https://www.cnblogs.com/fxd980519/p/7808694.html
Copyright © 2020-2023  润新知