-
处理跨域方法三:XHR2 XHR2:HTML5提供的XMLHttpRequest Level2已经实现了跨域访问以及其他的一些新功能 IE10以下版本浏览器不支持 用法: 在服务器端<?php?>中增加设置即可: 1、header('Access-Control-Allow-Origin:*'); “*”表示支持所有域名,也可以设置特定的域名 2、header('Access-Control-Allow-Methods:Post/Get');表示请求是post还是get查看全部
-
出于安全考虑,浏览器都有同源策略。即相同domain的页面运行在一个沙箱(sandbox)中,与其他domain的沙箱隔离,不能跨越domain直接访问其他domain下的资源。 但HTML中有几个标签可以忽略同源限制去请求其他domain下的资源,比如<img> 和<script>等。这里主要说<script src="url">,当浏览器解析到<script>标签,就会发起一个get请求,请求的URL即为scr所指定的url。这就相当于跨域访问了一个资源。 比如运行一下代码: script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'http://www.someWebApiServer.com/some-data'; 可能得到的是一个script元素,元素的innerHTML是请求返回的对象: <script> {['some string 1', 'some data', 'whatever data']} </script> 我们已经得到了想要的内容,但解析它并不方便。如果使用了JSONP是什么样的呢: script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'http://www.someWebApiServer.com/some-data?callback=my_callback'; 返回的结果是: my_callback({['some string 1', 'some data', 'whatever data']});可以看到,这里的返回结果是直接执行了一个函数my_callback(...),实参就是我们需要的数据 那么只要在代码里实现my_callback 函数,就可以做任何想做的事了 <html> ... <script> function my_callback(data){alert(data.name etc.)} </script>查看全部
-
a域名去声明一个方法,b域名去调用这个方法 script可以向不同页面提交http请求; jsonp的方式只是针对get请求方式,不支持post请求 $.ajax({ type:"GET", url:"http://127.0.0.1:8080/ajaxdemo/service.php?number"+$("#keyword").val(), dataType:"jsonp", //由"json"改为"jsonp" jsonp:"callback", //增加此项,用于后台代码编写 success:function(data){ if(data.success){ $("#searchResult").html(data.msg); } else{ $("#searchResult").html("出现错误"); } }, error:function(er){ alert(er.status); } }); $jsonp = $_GET["callback"]; $result = '()'; [ 收起全文 ] 后端代码改造 1、在search()函数中加入代码$jsonp=$_GET["前端所取的jsonp的名字"] 2、注意$result=$jsonp.'(……)' jsonp连接是用点(.),并且里面的值要用括号括起来查看全部
-
何为跨域查看全部
-
PHP服务端的代码已经写完了,但是这个代码写的对不对呢,能不能顺利的执行呢,我们需要进行一下测试 这个所谓的测试 可不是我们把客户端Ajax请求各个事件都给写完之后,来对它进行测试,我们需要在没有客户端的情况下,就对服务端的 一些请求进行一些测试,这是怎么样来做到的呢?我们通过一个工具fiddler工具,这个工具可以监听整个电脑所有发出的 HTTP请求,可以监听它们传入的值,和相应回来的值,当然在这里边它还可以去模拟 在百度上搜索fiddler就可以下载到,直接安装, (http://www.imooc.com/learn/37)有专门讲解fiddler的使用方法, 大家在日常进行web开发的时候,有时候后台做好之后,总是等待依赖前台做好之后,可以去调试,其实完全没有必要 我们只需要约定好接口, 发送的报文和返回的报文,通过fiddler或者类似的工具,直接就可以进行调试了。不需要依赖前台是否完成查看全部
-
跨域概念查看全部
-
PHP测试页面查看全部
-
XHR获取服务器响应的方法和属性 -responseText:获取字符串形式的响应数据 -responseXML:获得XML形式的响应数据 -status和statusText:以数字和文本形式返回HTTP状态码 -getAllResponseHeader():获取所有的响应报头 -getResponseHeader():查询响应中的某个字段的值 -readyState属性: 0:请求未初始化,open还没调用 1:服务器连接已连接,open已调用 2:请求已接收,也就是接收到头信息了 3:请求处理中,也就是接收到响应主体 4:请求已完成,且响应已就绪,也就是响应完成了查看全部
-
XHR发送请求的两个方法 -open(methob,url,async)方法 methob请求方法get或者post,不区分大小写,一般大写。 url请求的地址。 async表示同步或异步--默认为异步true -send(string)把请求发送到服务器,(如果使用get发送请求,该参数可不填或null,若使用post发送请求,则需要填写)。查看全部
-
http状态码查看全部
-
http响应查看全部
-
get和post请求查看全部
-
HTTP请求查看全部
-
HTTP请求查看全部
-
XMLHttpRequest对象查看全部
举报
0/150
提交
取消