-
php返回代码
echo $_GET['callback2'] .'('. json_encode(array('status' => true, 'msg'=> '请求成功!' )) .');';
查看全部 -
jsonp实现原理:
前后台都需要做修改
(1) jquery动态创建一个script,使用script发送出去,不是xhr请求。
(2) 后台与前台约定使用相同的如callback函数,服务器返回的就会是javascript脚本,不是json。
jsonp除了callback还有一个_的函数,是防止缓存的。如果cache设置为true,就没有_函数了
查看全部 -
发生跨域的原因
查看全部 -
被调用方解决,是基于支持跨域的解决思路,基于http协议关于跨域方面的一些规定,在响应头里加允许调用字段,跨域请求是直接从浏览器发送过去的; 调用方解决:是基于隐藏跨域的解决思路,跨域请求不会直接从浏览器发到被调用方,而是从中间的http服务器转发过去的。 举例子: 调用方为a.com,被调用方为b.com。 被调用方解决时,在浏览器上会看到b.com的url,修改的是被调用方的http服务器。 调用方解决时,在浏览器上看到的都是a.com的url,但是该到b.com的请求还是会到b.com的。修改的是调用方的http服务器。查看全部
-
jsonp是一种非正式传输协议,是前后台约定的协议,而不是官方协议。 jsonp的实现原理是:前后台约定带有“callback”这个参数的请求就是jsonp请求,前台发出去的请求加了“callback”参数,当后台发现请求中带“callback”时,后台就知道这是一个jsonp请求,就会把返回的数据由json变成JS代码返回,JS代码内容就是一个函数的调用,函数名是“callback”参数的值,而原来需要返回的json对象数据在这里作为参数传递返回。 前端代码: .... $.ajax({ url:...., dataType:"jsonp",//主要就是dataType是jsonp类型 ...... }); setTimeout(function){ expect(result).toEqual({ "data":"get1 ok" }); .......... ........ } 后台代码: 例如java语言,需继承AbstractJsonpResponseBodyAdvice类,重写构造函数并传参数“callback”,super("callback"); jsonp里传输的就是json的数据格式,只是在发送请求时多加一个参数,其值为回调函数。后台程序在获得该回调函数后,把准备好的json数据返回。查看全部
-
使用JSONP解决跨域问题,只改前端不改后端报语法错误(如图中第二条错误)的原因:JSONP是使用动态创建的一个script标签,而script标签返回的是JS代码,但是服务器后台代码没有做任何改动,返回的还是json对象。浏览器会把json对象和字符串当作是JS代码来解析所以就会报错了。解决方法:需要修改后台代码,新建一个类在构造方法里写super("callback");查看全部
-
我这里测试 req.getHeader 必须要小写access-control-request-headers才行查看全部
-
解决跨域问题的思路
查看全部 -
具体启动命令
查看全部 -
浏览器设置
查看全部 -
产生跨域的原因
查看全部 -
跨域问题解决思路
查看全部 -
apache 反向代理
查看全部 -
什么是反向代理?
访问同一个域名两个不同url会去到两个不同的服务器
修改 hosts
127.0.0.1 b.com a.com
在nginx-> conf/vhost/ 新增a.com.conf
server{
listen 80;
server_name a.com;
location /{
proxy_pass http://localhost:8081/; 前端服务器地址
}
location /ajaxserver{
proxy_pass http://localhost:8080/test/; 接口服务器地址
}
}
前端代码 var base='/ajaxserver'
浏览器访问 a.com
查看全部 -
虚拟主机的配置
文件 apache-> conf-> httpd.conf
打开vhost模块, 打开 proxy_module模块、 打开proxy_http_module模块
取消注释的(搜vhost) 配置文件(路径 conf/extra/httpd-vhosts.conf),
回到apache->bin 双击httpd.exe 启动apache
配置请求头
打开 headers_module 模块、打开 rewrite_module模块
重启apache
查看全部
举报