【PHP】Ajax跨域解决方案 、jsonp、cors
参考文章:
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);
}
});
【PHP】Ajax跨域解决方案 、jsonp、cors的更多相关文章
- asp.net web api2.0 ajax跨域解决方案
asp.net web api2.0 ajax跨域解决方案 Web Api的优缺点就不说了,直接说怎么跨域,我搜了一下,主要是有两种. 一,ASP.NET Web API支持JSONP,分两种 1, ...
- Ajax跨域:Jsonp实例--百度搜索框下拉提示
Ajax跨域:Jsonp实例--百度搜索框下拉提示 一.总结 一句话总结:a.找好接口:b.用script标签的src引入文件(json数据):c.定义及实现上一步引入文件中的函数 1.如何找到一个网 ...
- 前端跨域解决方案: JSONP的通俗解说和实践
对于前端开发者而言,跨域是一个绕不开的话题.只有真正明白了各种方案的工作机制,才能针对性地进行跨域方案选型.本文将以探索者的视角,试图用最通俗的语言对一种"鼎鼎大名"的跨域解决方 ...
- 第十四节:Asp.Net Core 中的跨域解决方案(Cors、jsonp改造、chrome配置)
一. 整体说明 1. 说在前面的话 早在前面的章节中,就详细介绍了.Net FrameWork版本下MVC和WebApi的跨域解决方案,详见:https://www.cnblogs.com/yaope ...
- Ajax跨域:jsonp还是CORS
跨域一般用jsonp,兼容性比较好.CORS是html5最新的XHR第二版本,不支持IE8,IE9,对移动端的支持非常好.但是考虑项目后期这部分会转到同域名下,而且网址不需要支持ie8,ie9,所以我 ...
- 前端Ajax跨域解决方案
业务场景: 前后端分离需要对接数据接口. 接口测试是在postman做的,今天才开始和前端对接,由于这是我第一次做后端接口开发(第一次嘛,问题比较多)所以在此记录分享我的踩坑之旅,以便能更好的理解,应 ...
- Ajax跨域解决方案大全
题纲 关于跨域,有N种类型,本文只专注于ajax请求跨域(,ajax跨域只是属于浏览器"同源策略"中的一部分,其它的还有Cookie跨域iframe跨域,LocalStorage跨 ...
- Ajax跨域:Jsonp原理解析
推荐先看下这篇文章:JS跨域(ajax跨域.iframe跨域)解决方法及原理详解(jsonp) JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重 ...
- JQuery实现Ajax跨域访问--Jsonp原理
JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略).这一策略对于Java ...
随机推荐
- json传输二进制的方案【转】
本文转自:http://wiyi.org/binary-to-string.html json 是一种很简洁的协议,但可惜的是,它只能传递基本的数型(int,long,string等),但不能传递by ...
- C#高级编程六十六天----表达式树总结【转】
https://blog.csdn.net/shanyongxu/article/details/47257139 表达式树总结 基础 表达式树提供了一个将可执行代码转换成数据的方法.如果你要在执行代 ...
- libnids
一.简介 libnids的英文意思是 Network Intrusion Detect System library,即网络入侵监测系统函数库.它是在前面介绍的两种C函数接口库libnet和libpc ...
- Bootstrap风格button
一直非常喜欢Bootstrap的按钮风格,仿照Bootstrap做了一套按钮.在ie6/7/8/9/10/11.chrome.firefox下能正常使用. ie6/7/8不支持css3的样式.按钮在这 ...
- 【收藏】介绍RCU的好文章
RCU原理: RCU(Read-Copy Update),顾名思义就是读-拷贝修改,它是基于其原理命名的.对于被RCU保护的共享数据结构,读者不需要获得任何锁就可以访问它,但写者在访问它时首先拷贝一个 ...
- nginx不浏览直接下载文件
当我们使用Nginx时,如果要让一些附件比如txt,pdf,doc等不直接在浏览器打开,而弹出另存为的对话框(也就是下载),则可以在nginx里添加如下配置: location /{if ($requ ...
- 浅析ARM公司在物联网领域的战略布局(转)
随着ARM芯片的出货量越来越多,自信满满的ARM公司统一软硬件平台的战略和雄心壮志越来越凸显.最初ARM公司仅是出售自己的知识产权(IP核)给各大芯片公司,由于最初ARM公司处于劣势,所以给芯片厂商很 ...
- Magento错误 Illegal scheme supplied, only alphanumeric characters are permitted
1.检查表core_config_data 'web/unsecure/base_url' 和'web/secure/base_url' 的值是否是正确的链接地址 2.删除系统目录var下所有子目录及 ...
- libsvm使用说明
http://www.hankcs.com/ml/libsvm-usage.html libsvm使用说明 码农场 > 机器学习 2016-02-18 阅读(345) 评论(0) 目录 l ...
- linux 添加elasticsearch 开机重启(自启动)
在 /etc/init.d 文件夹下建立脚本 eg:data.sh #chkconfig: 2345 80 90#description:auto_run#!bin/bashexport JAVA_H ...