1 / 4
文档名称:

请求跨域的解决方案.docx

格式:docx   大小:112KB   页数:4页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

请求跨域的解决方案.docx

上传人:科技星球 2022/3/16 文件大小:112 KB

下载得到文件列表

请求跨域的解决方案.docx

相关文档

文档介绍

文档介绍:请求跨域的解决方案
 
   
 
 
 
 
 
 
 
     
 
 
 
 
 
在项目中遇到错误提示“No 'Access-Control-Allow-Origin' header is    
 
   
请求跨域的解决方案
 
   
 
 
 
 
 
 
 
     
 
 
 
 
 
在项目中遇到错误提示“No 'Access-Control-Allow-Origin' header is present on the requested resource.”查了下度娘,这个问题和安全机制有关,默认不允许跨域调用,这里记录一下解决方案,防止以后再犯相同的错误。
调用web接口,get请求,发现提示:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
这个和安全机制有关,默认不允许跨域调用
处理手段:使用jsonp格式, ajax请求参数dataType:'JSONP'。
复制代码 代码如下:
$.ajax({
        url: "http://.......",
        type: 'GET',
        dataType: 'JSONP',//here
        success: function (data) {
        }
    });
最近工作中用到jsonp是为了解决ajax的跨域获取数据问题
举个栗子
前端页面://,如果用普通的ajax方式,会被浏览器认为是跨域不安全而拦截,这个时候就需要使用jsonp了,相应的前后端代码都要做一些改动
下面以jquery框架为例,jquery提供了getJSON方法来实现jsonp,这个时候你需要在请求的url后面加上“callback=?”,上面的例子就是 ?callback=?。
然后其实jquery会在getJSON方法被触发时,动态的创建一个script,这个script的src会是类似于?callback=jsonp1339589075417这种形式,也就是jquery会自动以某个值替换=?中的问号。这样的话,浏览器发现新来了一个script,就会向src指定的url请求数据。
,然后把你的本来要返回的json格式数据包装成如下格式:
jsonp1339589075417({"key1":"value1", "key2":"value2"})
也就是在原先的json数据前后加半边括号,并且在前括号前再加上callback的值。
JSONP的用处是:跨域资源共享(Resources Domain Resources Sharing),客户端从不同的域名发送JSON响应时绕过浏览器限制。
为了解释清楚,来看JSON和JSONP的对比:
JSON(JavaScript Object No