【PHP】Ajax跨域解决方案 、jsonp、cors
2024-10-16 01:40:14
参考文章:
1、https://blog.csdn.net/u014727260/article/details/72793459 (后台java,实际上差不多)
2、
如何解决ajax跨域传输 数据的问题
- JSONP
JSONP是JSON with Padding的略称。它是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。关于jsonp的使用方式,可以参考http://blog.csdn.net/alen1985/article/details/6365394,优缺点可以参考http://blog.csdn.net/z69183787/article/details/19191385 - 添加响应头,允许跨域
addHeader(‘Access-Control-Allow-Origin:*’);//允许所有来源访问
addHeader(‘Access-Control-Allow-Method:POST,GET’);//允许访问的方式
1、JONSP:jquery的ajax 发送jsonp 请求(还可带上callback指定回调函数,不写默认callback)
2、CORS:跨站资源共享(简单请求+复杂请求==》application/json; charset=utf-8 , 则属于复杂请求)
,我们可以在服务器端PHP示例的方法里面,设置以下参数:
<?php
header("Access-Control-Allow-Origin: *"); //全域名
header("Access-Control-Allow-Credentials: true"); //是否可以携带cookie header("Access-Control-Allow-Methods: POST,GET,PUT,OPTIONS,DELETE"); //允许请求方式
header("Access-Control-Allow-Headers: X-Custom-Header"); //允许请求字段,由客户端决定
header("Content-Type: text/html; charset=utf-8"); //返回数据类型( text/html; charset=utf-8、 application/json; charset=utf-8 )
//header("Access-Control-Allow-Origin: //www.jb51.net");//指定域名访问 //CORS跨域支持post、get、put、options、delete方式,而jsonp跨域只支持get方式 >?
Javascript 代码直接使用 Ajax 即可:
$.ajax({
url: aURL,
type: aMethod,
data: aParams,
dataType: 'json',
timeout: * ,
beforeSend: function (xhr) {
var token = $.cookie('token');
if (token) {
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
}
},
success: function (response) {
if (response.code == ) {
typeof aSuccess == 'function' && aSuccess(response.data);
} else {
typeof aError == 'function' && aError(response.message);
}
},
error: function(xhr, type){
typeof aError == 'function' && aError(xhr.status + ' ' + xhr.statusText);
}
});
最新文章
- MySQL 插入数据时,中文乱码问题的解决(转)
- LLVM 笔记(四)—— three-phase 设计的收益
- MySQL数据类型 int(M) 表示什么意思?详解mysql int类型的长度值问题
- 使用 highchart 绘制柱状图的通用方法与接口
- 如何在MapControl界面添加双击事件实现标绘及符号样式更改
- iOS 工厂方法模式
- 安装Elasticsearch,Logstash,Kibana(5.0.1-mac版)
- go语言与所谓的包
- 【性能测试】【Jmeter】学习(1)
- C# 操作NPOI导入导出
- jquery动态添加DOM节点
- Ckeditor与Ckfinder的配合使用,上传图片、水印、修改图片名字为当前日期 asp.net
- Codeforces Round #483 (Div. 2) D. XOR-pyramid
- 洛谷P4057
- chrome浏览器上传图片反应很慢,延迟很久才弹出窗口
- SpringBoot之文件下载
- Specified version of key is not available (44)
- exadata cellcli
- .Net Core(一)环境搭建与基本使用
- BZOJ.1430.小猴打架(Prufer)
热门文章
- 【LeetCode】Number of Islands
- RecyclerView的使用(2)之多Item布局的载入
- Github用.gitignore忽略指定文件
- 【Spark】SparkStreaming-Tasks-数量如何设置?
- List 转 ObservableCollection
- Windows 增强版任务管理器-Process Explorer
- Sqlite的多表连接更新
- JAVA对图片的任意角度旋转,以及镜像操作
- idea 提交代码时提示 please tell me who you are .......
- ASP入门(二十二)-连接数据库