zoukankan      html  css  js  c++  java
  • 解决 js ajax跨域访问报“No 'Access-Control-Allow-Origin' header is present on the requested resource.”错误

    在实现不同端口号之间访问时遇到了跨域报错问题

    前言

    从 http://www.a.com/test.html 发起一个跨域请求,
    请求的地址为: http://www.b.com/test.PH

    在本地用ajax跨域访问请求时报错:

    XMLHttpRequest cannot loadhttp://www.zjblogs.com/. No 'Access-Control-Allow-Origin'
    header is present on the requested resource. Origin 'null' is therefore not allowed access.
    1
    2
    问题原因

    W3C标准里是这么实现HTTP跨域请求的, Cross-Origin Resource Sharing

    简单的来说,就是跨域的目标服务器要返回一系列的Headers,通过这些Headers来控制是否同意跨域。

    Access-Control-Allow-Origin HTTP Response Header
    Access-Control-Max-Age HTTP Response Header
    Access-Control-Allow-Credentials HTTP Response Header
    Access-Control-Allow-Methods HTTP Response Header
    Access-Control-Allow-Headers HTTP Response Header
    Origin HTTP Request Header
    Access-Control-Request-Method HTTP Request Header
    Access-Control-Request-Headers HTTP Request Header
    在 Request 包和 Response 包中都有一些。
    其中最敏感的就是 Access-Control-Allow-Origin 这个 Header, 他是W3C标准里用来检查该跨域请求是否可以被通过。 (Access Control Check)

    解决方法

    1、在java服务器端的filter或者servlet里面添加

    response.setHeader("Access-Control-Allow-Origin", "*");
    2、如果请求的url是aspx页面,则需要在aspx页面中添加代码

    Response.AddHeader("Access-Control-Allow-Origin", "*");
    3、如果请求的url是PHP页面

    header("Access-Control-Allow-Origin: *");
    4、如果请求的url是静态的html页面,则需要在页面中添加meta标签代码:

    <meta http-equiv="Access-Control-Allow-Origin" content="*" />
    “Access-Control-Allow-Origin”表示允许跨域访问,“*”表示允许所有来源进行跨域访问,这里也可以替换为特定的域名或ip。
    很显然,这种方式对非网站拥有人员来说是不能做到的。而且此种方式很容易受到CSRF攻击。

    如果还不行,就把这些都加上吧

    // 指定允许其他域名访问
    1.header('Access-Control-Allow-Origin:*');
    // 响应类型
    2.header('Access-Control-Allow-Methods:POST');
    // 响应头设置
    3.header('Access-Control-Allow-Headers:x-requested-with,content-type');

  • 相关阅读:
    Redis 锁
    Redis 持久化
    Redis 数据淘汰策略
    Redis 事务命令
    【vue禁止复制粘贴】
    tsconfig.json无法写入webpack.config.js 因为它会覆盖输入文件。
    npm 进阶命令知多少(一)
    如何将360度评估调查应用于员工发展?
    如何利用360度评估做好民主评议促进干部管理与选拔?
    手把手带你使用360度评估系统实施绩效反馈全流程(附详细图文)
  • 原文地址:https://www.cnblogs.com/Andy-Blog/p/10272825.html
Copyright © 2011-2022 走看看