【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 ...
随机推荐
- Gflags 简明使用
简介 Google 的 gflags 是一套命令行参数处理的开源库.比 getopt 更方便,更功能强大,从 C++的库更好的支持 C++(如 C++的 string 类型).包括 C++的版本和 p ...
- 第二章 logstash - 输出插件之redis与es
最常用的两个输出插件: redis es 一.redis 1.用法 output { redis{ batch => false batch_events => 50 batch_time ...
- (使用STL中的数据结构进行编程7.3.15)UVA 630 Anagrams (II)(求一个单词在字典中出现的次数)
/* * UVA_630.cpp * * Created on: 2013年11月4日 * Author: Administrator */ #include <iostream> #in ...
- [leetcode]Regular Expression Matching @ Python
原题地址:https://oj.leetcode.com/problems/regular-expression-matching/ 题意: Implement regular expression ...
- Python 通过打码平台实现验证码
在爬虫时,经常遇到登录需要验证码的情况,简单的验证码可以自己解决,复制的验证码需要借助机器学习,有一定的难度.还有一个简单的方案就是采用付费的打码平台. 比如R若快(http://www.ruokua ...
- OpenGL ES 3.0顶点着色器(二)
#version es uniform mat4 u_mvpMatrix; in vec4 a_position; in vec4 a_color;out vec4 v_color;void main ...
- 大量带BPM的跑步歌曲/跑步音乐下载
20150110停止更新告知:不知不觉本帖更新有近半年了.从最开始跑步已经四年多,一直是听着音乐跑的,音乐支持.陪伴.丰富着我的跑步之旅.直到上个月因一次觉得音乐吵,我开始有意地摘掉耳机去跑步,并开始 ...
- C#学习记录二:高级数据存储方式
1,结构 结构和类的区别主要在于存储和访问方式,结构是一种值 数据类型,而类是一一种引用数据类型.所谓值数据类型存储个人理解是存在堆里面的,所谓引用数据类型存储在了栈里面,相当于存储了一个指针. 结构 ...
- 微信小程序 - 自定义swiper dots样式(非组件)
自定义须知: :组件内无法使用自定义样式变化,需要自定义 :原理就是利用swiper change事件与下标index匹配,显示不同的样式 swiper组件须知: :一旦swiper用于组件化,就 ...
- JERSEY中文翻译(第三章、模块和依赖)
Chapter 2 Modules and Dependencencies 2.1 Java SE 兼容 所有的Jersey组建都是基于Java6开发的,所以你的Java必须是Java6以上的版本才能 ...