跨域相关

如果使用XMLHttpRequest 不能发送跨域请求,但是可以使用
script 标签去发送请求
如果添加了一个dataType 等于 jsonp,jQuqey 的ajax 方法
底层就不使用XMLHttpRequest, 而是去创建一个script标签,
然后通过script 标签去发送请求
如果使用script 标签发送请求,那么如何接收服务器发送返回的数据?
如果使用script 标签发送请求,服务器返回了数据,返回的数据
客户端浏览器直接以javascript 的方式去解析服务器返回的数据
script 浏览器调用js 的解析引擎去解析数据

客户端给服务端传递一个回调函数,它还需要定义一个函数
服务端返回的是一个回调函数的调用,并且将服务端的数据包在这个函数的调用里面

jsonp 只能使用get
因为底层使用script 标签发送请求
scr href 这些发送的请求都是get 请求

jquery 只支持jsonp

post 也是可以跨域的,但就不是jsonp 了

post 是 cors 跨域资源共享

服务端:

  

<?php

$callback = isset($_REQUEST[‘callback‘]) ?$_REQUEST[‘callback‘] : ‘‘;

$data = array(‘name‘=>‘lisi‘,‘age‘=>22);
$json = json_encode($data);

echo $callback . "($json)";

客户端:

  

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <input type="button" value="click">
    <script type="text/javascript">
        function getInfo(args){
            console.log(args)
        }

        document.querySelector(‘input‘).onclick = function(){

            var script = document.createElement(‘script‘);
            script.src = ‘index.php?callback=getInfo‘;
            document.body.appendChild(script);
        }
    </script>
</body>
</html>
时间: 2024-10-03 03:55:12

跨域相关的相关文章

关于JSONP以及跨域相关

什么是跨域: 浏览器对ajax请求的限制,不允许跨域请求资源. http://www.a.com--->http://www.b.com       是跨域 http://www.a.com--->http://www.a.com:8080  是跨域 http://a.a.com--->http://b.a.com  是跨域 http://www.a.com--->http://www.a.com/api   不是   //访问域名下面的API不是跨域访问 总结: 由于JavaSc

跨域相关配置

1.要讨论的是浏览器端的真正跨域访问,推荐的是目前jQuery $.ajax()支持get方式的跨域,这其实是采用jsonp的方式来完成的. dataType : 'jsonp',jsonp : 'callback', crossDomain :true设置前两个就可以了 参考 contentType: 'application/x-www-form-urlencoded; charset=UTF-8', mode: "cors", headers:{ "Access-Con

ajax跨域相关

ajax 技术使用xmlhttprequest组件附送请求时,发送请求的url和本网页的url地址必须在同一个域名下如果需要跨域,可以使用iframe或者<javascript src="url"></script>的方式   http://www.cnblogs.com/Spring/archive/2008/10/21/1315882.html http://exceptioneye.iteye.com/blog/1405495     新的W3C策略实现了

原生js封装ajax,实现跨域请求

描述: 需要ajax跨域请求,用cors跨域方案.服务端设置: header('Access-Control-Allow-Origin: http://front.ls-la.me'); header('Access-Control-Allow-Headers: X-Requested-With'); 设置了: 后端需要的头信息,原生ajax以表单方式post提交数据,json数据data转换成key1=val1&key2=val2 的字符串格式 1 var ajaxHdFn = functio

web开发中浏览器跨域问题

1 <system.webServer> 2 <httpProtocol> 3 <customHeaders> 4 <add name="Access-Control-Allow-Origin" value="*" /> 5 <add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS" /> 6

Node.js express 跨域问题

Node.js express 跨域问题解决了这个问题,那真是太爽了! 跨域问题主要在header上下功夫 首先提供一个w3c的header定义 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html 再提供一个网友提供的header详解 http://kb.cnblogs.com/page/92320/ 这两个有助于帮助大家理解header的类型和作用, 但是遗憾的是跨域相关的两个header属性我都没有找到相关的定义, 下面直接告诉大家

跨域CORS

一.跨域CORS是什么 当一个资源从与该资源本身所在的服务器的域或端口不同的域或不同的端口请求一个资源时,浏览器会发起一个跨域 HTTP 请求.出于安全考虑,浏览器会限制从脚本内发起的跨域HTTP请求或者拦截了服务器返回内容.例如,XMLHttpRequest 和 Fetch 遵循同源策略.因此,使用 XMLHttpRequest或 Fetch 的Web应用程序只能将HTTP请求发送到其自己的域:这种安全机制是为避免出现类似CSRF 跨站攻击等问题. 二.实现CORS 根据CORS的定义和W3C

ajax 跨域----好用的解决方案

一.前言 跨域这个词就一直以很高的频率在身边重复出现,一直到现在,已经调试过N个跨域相关的问题了! 但是感觉还是差了点什么,于是现在重新梳理了一下.个人见识有限,如有差错,请多多见谅 二.前言 关于跨域,有N种类型,本文只专注于 ajax请求跨域(ajax跨域只是属于浏览器"同源策略"中的一部分,其它的还有Cookie跨域iframe跨域,LocalStorage跨域等这里不做介绍),内容大概如下: 什么是ajax跨域 原理 表现(整理了一些遇到的问题以及解决方案) 如何解决ajax跨

ajax跨域,这应该是最全的解决方案了

前言 从刚接触前端开发起,跨域这个词就一直以很高的频率在身边重复出现,一直到现在,已经调试过N个跨域相关的问题了,16年时也整理过一篇相关文章,但是感觉还是差了点什么,于是现在重新梳理了一下. 个人见识有限,如有差错,请多多见谅,欢迎提出issue,另外看到这个标题,请勿喷~ 题纲 关于跨域,有N种类型,本文只专注于ajax请求跨域(,ajax跨域只是属于浏览器"同源策略"中的一部分,其它的还有Cookie跨域iframe跨域,LocalStorage跨域等这里不做介绍),内容大概如下