No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

一、什么是跨域访问

举个栗子:在A网站中,我们希望使用Ajax来获得B网站中的特定内容。如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题。你可以理解为两个域名之间不能跨过域名来发送请求或者请求数据,否则就是不安全的。跨域访问违反了同源策略,同源策略的详细信息可以点击如下链接:Same-origin_policy; 
总而言之,同源策略规定,浏览器的ajax只能访问跟它的HTML页面同源(相同域名或IP)的资源。

二、解决方案

常用的解决方案有两种,可以分为客户端解决方案和服务器端解决方案。先说服务器端解决方案:

  • 服务器端解决方案 
    在服务器端的filter或者servlet里面添加 
    response.setHeader("Access-Control-Allow-Origin", "*"); 
    “Access-Control-Allow-Origin”表示允许跨域访问,“*”表示允许所有来源进行跨域访问,这里也可以替换为特定的域名或ip。 
    很显然,这种方式对非网站拥有人员来说是不能做到的。而且此种方式很容易受到CSRF攻击。
  • 客户端解决方案
$(function($){
      var url = ‘http://*****/index‘;
      $.ajax(url, {
        data: {
          ‘cityname‘: ‘成都‘,
          ‘date‘: ‘2016.12.12‘
        },
        dataType: ‘jsonp‘,
        crossDomain: true,
        success: function(data) {
          if(data && data.resultcode == ‘200‘){
            console.log(data.result.today);
          }
        }
      });

将ajax请求中的dataType属性设置为“jsonp”,jsonp是专门用来解决跨域访问而诞生的。

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

原文地址:https://www.cnblogs.com/peteremperor/p/9277307.html

时间: 2024-10-12 18:04:49

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.的相关文章

js跨域访问,No 'Access-Control-Allow-Origin' header is present on the requested resource

js跨域访问提示错误:XMLHttpRequest cannot load http://...... No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. 解决方法: 1.如果请求的url是aspx页面,则需要在aspx页面中添加代码:Response.AddHeader("Access-Contro

As.net WebAPI CORS, 开启跨源访问,解决错误No 'Access-Control-Allow-Origin' header is present on the requested resource

默认情况下ajax请求是有同源策略,限制了不同域请求的响应. 例子:http://localhost:23160/HtmlPage.html 请求不同源API http://localhost:22852/api/values, What is "Same Origin"? Two URLs have the same origin if they have identical schemes, hosts, and ports. (RFC 6454) These two URLs h

ajax请求node.js接口时出现 No 'Access-Control-Allow-Origin' header is present on the requested resource错误

ajax请求node.js接口出现了如下的错误: XMLHttpRequest cannot load http://xxx.xxx.xx.xx:8888/getTem?cityId=110105&date=2015-03-04. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. 百度了一下,原来是

ABP PUT、DELETE请求错误405.0 - Method Not Allowed 因为使用了无效方法(HTTP 谓词) 引发客户端错误 No 'Access-Control-Allow-Origin' header is present on the requested resource

先请检查是否是跨域配置问题,请参考博客:http://www.cnblogs.com/donaldtdz/p/7882225.html 一.问题描述 ABP angular前端部署后,查询,新增都没问题,但更新和删除会报一个跨域问题的错误,详细信息如下: PUT http://localhost:8060/api/services/app/User/Update 405 (Method Not Allowed) users:1 Failed to load http://localhost:80

No 'Access-Control-Allow-Origin' header is present on the requested resource——Web Api跨域问题

最近使用C#写了一个简单的web api项目,在使用项目中的.cshtml文档测试的时候没有任何问题,但是在外部HBuilder上面编写.html通过Ajax调用web api路径时报错: No 'Access-Control-Allow-Origin' header is present on the requested resource. 导致这个问题的原因是在跨域访问web api的api时,C#自带的web api并不能支持跨域访问,如果需要,可以更改配置来实现. 1.更改Web.con

No 'Access-Control-Allow-Origin' header is present on the requested resource

一.现象 ajax调用请求后,前端提示收到这个错误 No 'Access-Control-Allow-Origin' header is present on the requested resource 二.原因 这是一个典型的跨域请求失败的例子. 三.解决 服务器的响应消息中增加头字段即可. rsp.addHeader("Access-Control-Allow-Origin", "*"); 四.扩展 更多的关于CORS的内容可以学习这篇文章: https://

[转]No 'Access-Control-Allow-Origin' header is present on the requested resource.'Ajax跨域访问解决方案

原 https://blog.csdn.net/zhoucheng05_13/article/details/53580683 No 'Access-Control-Allow-Origin' header is present on the requested resource. 什么是跨域访问 举个栗子:在A网站中,我们希望使用Ajax来获得B网站中的特定内容.如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题.你可以理解为两个域名之间不能跨过域名来发送请求或者请求数据,否则就是不安

ajax跨域处理 No 'Access-Control-Allow-Origin' header is present on the requested resource 问题

Controller层的类上增加@CrossOrign注解,当前文件的所有接口就都可以被调用 spring注解@CrossOrigin不起作用的原因 1.是springMVC的版本要在4.2或以上版本才支持@CrossOrigin 2.非@CrossOrigin没有解决跨域请求问题,而是不正确的请求导致无法得到预期的响应,导致浏览器端提示跨域问题. 3.在Controller注解上方添加@CrossOrigin注解后,仍然出现跨域问题,解决方案之一就是: 在@RequestMapping注解中没

浏览器禁止跨域访问及解决: No 'Access-Control-Allow-Origin' header is present on the requested resource.

一.出现报错 二.原因: 1.跨域访问是浏览器做的一个保护机制(html5页面需要浏览器渲染) 2.如果页面所访问的后端没有部署在同一个浏览器也会报错 三.跨域问题的解决方式: A.通过后端访问后端的方式解决.     B.通过页面的漏洞来解决--jsonp(不常用) C.现在浏览器支持cors,当然需要我们后端代码也要支持跨域,springMVC是支持cors 写一个配置类:通过接口WebMvcConfigurer来放行跨区域访问 注意事项: 1.跨区域的路径必须是全路径(URL+端口号) 如