您的當前位置: 首頁(yè) > SEO內容優(yōu)化
發(fā)布時(shí)間:2026-05-05 11:20:29 瀏覽:86363 次
這篇文章主要介紹了ajax請求添加自定義header參數代碼,請求具有很好的添加參考價(jià)值,希望對大家有所幫助。自定一起跟隨小編過(guò)來(lái)看看吧
我就廢話(huà)不多說(shuō)了,數代大家還是請求直接看???代碼吧~
$.ajax({
type: "post",
url:"http://127.0.0.1:4564/bsky-app/template/testPost",
content??Type: "application/json;ch??arset=utf-8",
data :JSON.str(′ω`*)ingify({ "bodyName":??"sdfsdf","date":"2017-11-28 07:34:01","pr??ice": 10.5,"tbId": 1}),
dataType: "json",
beforeSend: function (XMLHttpRequest) {
XMLHttpReques(′?`*)t.setRequestHeader("token", "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiO(???)iIxOD.....");
},
success: function (data) {
alert(data)??;
},error:function(error(//ω//)){
console.log(error);
}
});
befor??eSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequ(???)estHeader("token", "eyJhbGciOiJIUzUxMiJ9.eyJzd??WIiOiIxOD.....");
},
其( ?° ?? ?°)中,token是添加服務(wù)端自定義的header參數
補充知識:
ajax請求攜帶cookie、自定義header總結:
錯誤:
1??.ajax請求時(shí)是自定不會(huì )自動(dòng)帶上cooki(╬?益?)e的,要是數代想讓他帶上的話(huà),必須設置wit??hCredential為??true。請求
正確:
1.ajax同域請求下,添加a(//ω//)jax會(huì )自動(dòng)帶上同源的自定cookie;
2.a(′?_?`)jax同域請求下,ajax添加自定義請求頭(或原裝)header,數代前端、請求后臺不需要增加任何配置,添加
并且不會(huì )因為增加自定義請求頭header,自定而(′ω`)引起預檢查請求(option( ?ω?)s);
3.ajax跨域請求下,如果不需要攜帶cookie、請求頭header,只需要在后臺配置相應參數即可;
后臺參數:
(1).Ac??cess-Control-Allow-Origin:設置允許跨域的配置, 響應頭指定了該響應的資源是否被允(╯°□°)╯許與給定的origin共享;
前??端參數:
withCredentials: true(發(fā)送Ajax時(shí),Request header中會(huì )帶上Cookie信息)
后臺參數:
(1).Ac(???)cess-Control-Allow-Origin:設置允許跨域的配置, 響應頭指定了該響應的資源是否(?????)被允許與給定的origin共享;
特別說(shuō)明:配置了A??ccesˉ\_(ツ)_/ˉs-Control-Allow-Credentials:true則不能把Access-Control-Allow-??Origin設置為通配符*;
5.ajax請求任何時(shí)候都不會(huì )帶(//ω//)上不同源的cookie(Cookie遵循同源策略);
post(或GET)跨域請求時(shí),分為簡(jiǎn)單請求和復雜請求,跨域攜帶自定義或者原裝請求??頭頭時(shí)是復雜請求。
復雜請求會(huì )先發(fā)送??一個(gè)method 為option的請求,目的是試探服務(wù)器是否接受發(fā)起的請求. 如果服務(wù)器說(shuō)可以,再進(jìn)行post(或GET)請求。
對于java后臺web應用,跨??域需要添加一個(gè)過(guò)濾器(過(guò)濾器詳見(jiàn)下┐(′?`)┌面案例代碼),這個(gè)過(guò)濾器做的事就是,加(′?_?`)了幾個(gè)htt( ?▽?)p header在返回中,
Access-Control-Allow-Origin?? 我能接受的跨域請求來(lái)源,配置主機名
Access-Control-Allow-Headers 表示能接受的http頭部,別忘了加入你自己發(fā)明(′?_?`)創(chuàng )造的頭部
Access-Cont??rol-Allow-Methods 表示能接受的http mothed ,反正就那幾種,全寫(xiě)上也無(wú)妨,猥瑣點(diǎn)就只(?????)寫(xiě) post, options
如果是OPTION返回空,設置返回碼為202,2??02表示(′-ι_-`)通過(guò)。
需要前端配置相應參數才可以跨域攜帶請???求頭,后臺配置相應參數進(jìn)??行跨ヽ(′?`)ノ域攜帶請求頭;
crossDomain:true(發(fā)送Ajax時(shí),Request header 中會(huì )包含跨域的額外信息,但不會(huì )含cookie(作用不明,不會(huì )影響請求頭的攜帶))
后臺參數(配置預檢查過(guò)濾器):
(1)Acce???ss-Control-Allow-Origin:設置允許跨??域的配置, 響應(′_`)頭指定了該響應的(′▽?zhuān)?資源是否被允許與給定的origin共享;
(2)Access-Control-Allow-Credentials:響應頭表示是否可以將對請求的響應暴露給頁(yè)面(coo??kie)。返回true則可以,其他值均不可以;
(3)Access-Control-Allow-Headers:用于預檢請求中,列出了將會(huì )在正式請(′?`)求的 Access-Control-Request-Headers 字段中出現的首部信息。(自定義請求頭);
(4)Access-Control-Allow-Methods:在對預檢請求的應答中明確了客戶(hù)端所要訪(fǎng)問(wèn)的資源允許使用的方法或方法列表;
親測小結論:
1.ajax跨域請求下,后臺不配置跨域Access-Control-Allow-Origin,同樣能夠執行后臺方法,但是無(wú)法執行ajax的success的方法,控(???)制臺報跨域錯??誤;
2.ajax跨域請求下,前端配置withCredentials: fals??e,同樣能夠執行后臺方法,但是無(wú)法攜帶(′▽?zhuān)?)同源cookie,后臺無(wú)法獲??;
3.ajax(′Д` )跨域請求下,前端配置withCredentials: true,后端沒(méi)有配(?Д?)置Access-Control-Allow-Credentials:true,同樣能夠執行后臺方法,并能夠生成cookie并返回瀏覽器,但是無(wú)法執行ajax的success的方法,控制(′?ω?`)臺報跨域錯誤;
4.ajax跨域請求下,前端配置witˉ\_(ツ)_/ˉhCredentials: false或不配置wi??thCredentials,后端配置Access-Control-Allow-Credentials:true或者false,同樣能夠執行后臺方法,并能夠ヽ(′▽?zhuān)?/生成cookie并返回瀏??覽器,但是無(wú)法攜帶同源cookie,能夠執行ajax的success的方法;
5.Cookie攜帶只區分域名,不區分端口;
7.jsonp可以跨域生成cookie,流程如下:跨域請??求之后,在服務(wù)器端生成cookie,并在瀏覽器端記錄相應的cookie;
8.靜態(tài)資(′▽?zhuān)?源同樣會(huì )攜帶cookie(js和圖片等),但是如果是和當前頁(yè)面不同域只是在network中不顯示cookie選項,但是后臺能夠獲取到對應cookie;
9.ajax同域請求會(huì )自動(dòng)帶上同源的cookie,不會(huì )帶上(shang)不同源(?_?;)的cookie;
10.這是MDN對withCredentials的解釋?zhuān)?MDN-withCre??dentials ,我接著(zhù)解釋一下同源。
總結(jie):
最好前端后臺配置跨域,則同時(shí)配置相應的跨域配置,否則總會(huì )出現不可控的錯誤;
1. ajax跨域請求(無(wú)cookie、無(wú)header)案例(java)
(1)啟動(dòng)一個(gè)java web項目,配置兩??個(gè)域名(host),czt.ming.com、czt.casicloud.com,jav??a后端代碼如下:
注意:Access-Control-Allo??w-Origin
/**
*
* @Title: getAjaxCross
* @Descriヾ(′▽?zhuān)??ption: TODO(ajax請求,跨域)
* @param request
* @param response
*/
@RequestMapping(value='/getAjaxCross',method= { RequestMethod.GET})
public void getAjaxCross(HttpServletRequest request, HttpServletResponse response){
try {
response.setCharacterEncoding("UTF-8");
//設置允許多個(gè)域名允許跨(?Д?)域集合
String[] allowDomains = { "h??ttp://cz┐(′?`)┌t.casicloud.com", "http://czt.ming.com"};
Set allowOrigins = new HashSet(Arrays.asList(allowDomains));
String origin = request.getHeader("Origin");
if(a(′?`*)llowOrigins.contains(origin)){
//設置允許跨域的配置:Access-Control-Allow-(′▽?zhuān)?)Origin: 響應頭指定了該響應的資源是否被允許與給定的??origin共享
response.setHeader("Access-Control-Allow-Origin", or??igin);
}
//數據
Map&(°ロ°) !lt;String, Object> resultMap = new HashMap<String, Object>();
resultMap.put(′_ゝ`)("message", "ajax請求,跨域成功");
String result = JsonUtils.objectToJson(resultMap);
response.getWriter().write(result);
} catch (Exception e) {
e.printStackTrace();
}
}
//4.ajax跨域
function getCookieAjaxCross() {
$.ajax({
type:"get",
url:"http://czt.ming.com/xxx/xxx/xxx/getAjaxCross??",
async:true,
data??:{ },
dataType: 'json',??
success: function(data) {
console.log(data);
}
});
}
getCookieAjaxCross();
(3)測試ajax跨域請求:
通過(guò)http://??czt.casicl(/ω\)oud.com/xxx/xxx訪(fǎng)問(wèn)頁(yè)??面,j(′;ω;`)s觸發(fā)ajax跨域請求http://czt.ming.com/xxx/xxx/xxx/g??etAjaxCross,前端和后臺如果??不按照代碼中配置相應參數會(huì )報各種跨域錯誤;
(1)啟動(dòng)一個(gè)java web項目,配置兩個(gè)域名(host),czt.ming.com?、czt.??casicloud.com,java后端代碼如下:
注意:Access-Control-Allow-Credentials和Access-Control-Allow-Origin
/**
*
* @Title: getCookieAjax
* @Description: TODO(ajax請求,跨域傳遞cookie)
* @param request
* @param response
*/??
@RequestMapping(value ="/getCookieAjax"??,metho(╬?益?)d= { RequestMethod.GET})
public void getCookieAjax(HttpServlヽ(′ー`)ノetRequest request, HttpServletResponse respons??e){
try {
respon(╬ ò﹏ó)se.setCharact??erEncoding("UTF-8");
response.setHeader("Access-Control-Allow-Credentials", "true");
//設置允許多??個(gè)域名允許跨域集合
String[] allowDomains = { "http://czt.casicloud.com",?? "http:(′ω`)//czt.ming.com"};
Set allowOrigins = new HashSet(Arrays.asList(allowDomains));
String origin = request.getHeader("Origin");
if(allowOrigins.contains(origin)){
//設置允許跨域的配置:Access-Control-┐(′?`)┌Allow-Origin: 響應頭指定了該響應的資源是否被允許與給定的origin共享(′ω`)
response.setHeader("Access-Control-Allow-O(′?`)rigin", origin);
}
//獲取cookie
Coo??kie[] cookies = request.getCookies();
//設置cookie
Cookie cookie = new Cookie("accヾ(′▽?zhuān)??ess_token_ajax", UUID.randomUUID().toString());
cookie.setPath("/");
response.addCo??okie(cookie);
//數據
Map<String, Object&(′_ゝ`)g(′_`)t; resultMap = new HashMap<String, Object>();
resultMap.put("cookies", cookies);
resultMap.put("message", "ajax請求,跨域傳遞coo??kie成功");
String result = JsonUtils.objectToJson(resultMap);
response.getWriter().write(result);
} catch (Exception e) {
e.printStackTrace();
}
}
(2)前端頁(yè)面代碼如(?????)下:
注意:withCredentials和crossDomain(作用不明)
//4.ajax跨域攜帶cookie和自定義請求頭header
function?? getCookieAjaxCross() {
$.ajax({
type:"get",
url:"http://czt.m(′▽?zhuān)?ing.com/industry/api/publishFor(╯°□°)╯︵ ┻━┻eign/getCookieAjax"??,
async:(╬?益?)tru(′?`)e,
data:{ },??
dataType: 'json',
xhrFields: {
withCredentials: true // 發(fā)送Ajax時(shí),Request header中會(huì )帶上 Cookie 信息。
},
crossDomain: true, // 發(fā)送Ajax時(shí),Request header 中會(huì )包含跨域的額外信息,但不會(huì )含cookie(作用不明,不會(huì )影響請求頭的攜帶)
success: function(data) {
console.log(data);
}
})ヾ(′▽?zhuān)??;
}
getCookieAjaxCross();
(3)測試ajax跨域請求獲取和創(chuàng )建cookie:
通過(guò)http://czt.(′?ω?`)casicloud.com/xxx/xxx訪(fǎng)問(wèn)頁(yè)面,js觸發(fā)ajax跨域請求http://czt.ヽ(′ー`)ノmi??ng.com/xxx/xxx/xxxx/getCookieAjax,前端??和后臺如果不按照代碼中配置相應參數會(huì )報各種跨域錯誤;
3. ajax跨域請求,攜帶請求頭header案例(java)
(1)啟動(dòng)一個(gè)ja??va web項目,配置兩個(gè)域名(host),czt.ming.com、czt.casicloud.com;
(2)ajax跨域攜帶請求頭會(huì )發(fā)送兩??次請求,一次預檢查請求(options),預檢查請求通過(guò)之后才會(huì )進(jìn)行真正的請求,所ヽ(′ー`)ノ以java后臺需要配置相應的跨域過(guò)濾器,如下:
imp???ort java.io.IOException;
import java.util.Arrays;
import java.util.HashSet;
import java.uti(°□°)l.Set;
import javax.servlet.Filter;
import javax.servlet.Fil(′?`)terChain;
im??port javax.servlet.FilterConf??ig;
import javax.servlet.ServletExceptヽ(′▽?zhuān)?ノion;
import javax.servlet.Servle(???)tReque(′?ω?`)st;
import javax.servlet.ServletResponse;
import javax.servlet.http.Htt??pServletR??equest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @ClassName: CorsFilter
* @Description: TODO(跨域請求過(guò)濾器)
* @author clm
* @date 2019年10月25日
*
*/
public class CorsFilter imp??(/ω\)lements Filter {
@Override
public void doFilter(ServletRequest servletRequest,?? ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
/*
* 跨域請求頭服務(wù)端配置:
* 1.Access-Control-Allow(?_?;)-Origin:設置允許跨ヽ(′?`)ノ域的配置, 響應頭指定了該響應的資源是否被允許與給定的origin(╯°□°)╯︵ ┻━┻共享ヾ(′▽?zhuān)??
* 2.Access-Control-Allow-C??redentials:響應頭表示是否可以將對請求??的響應暴露給頁(yè)面(cookie)。返回true則可以,其他值均不可(ke)以。ヾ(?■_■)ノ
* 3.Access-Control-Allow-Headers:用于預檢請求中,列出了將會(huì )在正式請求的 Access-Control-Request-Headers 字段中出現的??首部信息。(自定義請求頭)
* 4.Access-Control-Allow-Me??thods:在對 預檢請求的應答中明確了客戶(hù)端所要訪(fǎng)問(wèn)的資源允(′?`*)許使用的方法或方法列表。
*/
HttpServlet(′?_?`)Request httpRequest = (HttpServletRequest) servletRequest;
HttpServletResponse httpRespoヽ(′▽?zhuān)?ノnse = (HttpServletResponse) servletResponse;
//設置允許多個(gè)域名允許跨域集合
String[] allowDomains = { "http://czt.casicloud.com", "http://czt.ming.com"};
Set<String> allowOrigins = new HashSet<String>(Arrays.asList(allowDomains));
String origin = httpRequest.getHeader("Origin");
if(allowOrigins.con(′▽?zhuān)?)tains(origin)){
//設置允許跨域的配置:Access-Control-Allow-Origin: 響應頭指(?????)定了該響應的資源是否被允許與給定的origin共享
httpResponse.sヽ(′ー`)ノetHeader("Access-Control-Allo??w-Origin", origin);
}
httpResponse.setHea??der("Access-Control-Allow-Credentials"??, "true");
httpRespo??(?????)nse.setHeader("Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Ac??cept, access-token");
httpResponse.setHeader("Access-Control-Allow-Methods", "GET, PUT, DELETE, POST, OPTIONS");
if (httpRequest.getMethod().equalsIgnoreCase("OPTIONS")) {
httpR??esponse.setStatus??(202);
httpResponse.getWriter().close();
return;
}
filterChain.doFilter(servlet??Request, se(╬?益?)rvletResponse);
}
@Override
public void destroy() {
}
@Override
public void init(FilterConfig filterConfig) throw(′;ω;`)s ServletException {
}
}
web.???xml中配??置過(guò)濾器:ヾ(′▽?zhuān)??
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>xxx.xxx.xxx.xx.xxx.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-n(◎_◎;)ame>CorsFilter</filter-name>
&l??t;url-pattern>/*</url-p??attern>
</filter-mapp??ing>
(3)java后臺Controller代碼:
/**
*
* @Title: getPersonHeader
* @Description: TODO(跨域獲取請求頭)
* @param request
* @param response
*/
@RequestMapping(??value='/getPersonHeader',meth??od=RequestMethod.GET)ヽ(′▽?zhuān)?ノ
public void getPersonHe(???)ader(HttpServletRequest request, HttpServletResponseヾ(^-^)ノ response){
try {
response.setCharacterEncoding("UTF-8");
String personHeader = request.getHeader("Access-Token");
System.err.println("獲取自定義請求頭(Access-Token(′▽?zhuān)?):" + personHeader??);(T_T)
//數據
Map<??S??tring, Object> resultMap = new HashMap<String, Object>();
resultMap.put("m??essage",ヾ(^-^)ノ "跨域獲取請??求頭成功");
resultMap.p??ut("personHeader", per(′?_?`)sonHeader??);
String result = JsonUtils.objectToJson(resultMap);
response.getWriter().write(result);
} catch (Exception e) {
e.prヽ(′▽?zhuān)?/intSヽ(′▽?zhuān)?ノtackT(′?_?`)race();
}
}
(??4)前端頁(yè)面代碼如下:(′?`)
注意:crossDomain(作用不明)
//同域前端設置自定義請求頭,后端獲取自定義請求頭
function getP??ersonHe??ader() {
$.ajax({
type:"get",
url:"/xxx/xxx/xxx/getPersonHeader",
async:true,
//ajax配置請求頭方式,第一種
headeヾ(′?`)?rs: {
"Access-Token":"Access-Token123456",//自定義請求頭
"Content-Type":"application/json;charset=utf8"
},
//ajax配置請求頭方式,第二種
//beforeSend : function(request) {
// request.setRequestHeader("Acc??ess-Token", "Acce(╬?益?)ss-Token123456")??;
// request.setRequestHeader("Conte??nt-Type", "apヽ(′ー`)ノplication?/json;charset=utf8");
//}
data:{ },
success: function(data) {
console.lo??g(data);
}
});
}
getPersonHeader();
//跨域前(qian)端設置自定義請求頭,后端獲取自定義請求頭
function getPersonHeaderCross() {
$.ajax({
type:"get??",
url:"h(′ω`)ttp://czt.ming.com/xxx/xxx/xxx/(?????)getPersonHeader",
async:true,
headers: {
"Access-Token":"Access-Token123456",//自定義請求(′?`*)頭
"Content-Type":"application/json;charset=utf8"
},
data:(╯°□°)╯︵ ┻━┻{ },
cross??Domain: true, // 發(fā)送Ajax時(shí),Request header 中會(huì )包含跨域的額外信息,但不會(huì )含┐(′?`)┌cookie(作用不明,不會(huì )影響請求頭的攜帶)
success: function(data) {
console.log(data(′ω`));
}
});
}
getPe??rsonHeaderCross();
(5)測試ajax跨域請求攜帶??請求頭header:
通過(guò)http://czt.casicloud.com/xxx/xxx訪(fǎng)問(wèn)頁(yè)面,js觸發(fā)ajax跨(???)域請求http://czt.ming.com/xxx/xxx/xxxx/getPerson??Header,前端和后臺如果不按照代碼中配置相應參數會(huì )報各種跨域錯誤;
3. jsonp實(shí)??現跨域讀寫(xiě)cookie案例(j??ava)
(1)啟動(dòng)一個(gè)java web項目,配置兩個(gè)域名(host??),czt.ming.com、czt.casicloud.com;
(2)java后臺jsonp代碼:
/**
*
* @Title: setCookie
* @Description: TOヾ(′?`)?DO(jsonp跨域設置cookie)
* @param request
* @param response
*/
@Re??quest??Mapping(value ="/setCookie.jsonp",method=RequestMethod.GET)
public void setCookie(HttpServletRequest reqヽ(′ー`)ノuest, HttpServlet??Response response){
try {
response.setCharacterEncoding("UTF-8");
//設置cookie
Cookie cookie = new Cookie("access_token", UUID.randomUUID().toString());
cookie.setPath("/"(╬?益?));
response.addCookie(cookie);
//數據
Map<String, Object> resultMap = new HashMap<Strin??g, Object>();
resultMap.put("cookie", cookie);
resultMap.pu?t("message", "跨域設置cookie成功");
String result = Jsヽ(′▽?zhuān)?ノon(?????)Utils.objectT(°□°)oJson(resultMap);
//前端傳過(guò)來(lái)的回調函數名稱(chēng)
String callback = request.getParameter("callback");
//用回調函數名稱(chēng)包裹返回(╯°□°)╯數據,這樣,返回數??據就作為回調函數的參數傳回去了
res??ult = callback + "(" + result + ")";
response.getWriter().write(result);
} catch (Exceptio??n e) {
e.printStackTrace();
}
}
/**
*
* @Title: getCookie
* @Description: TODO(jsonp跨域(yu)獲??取cook??ie)
* @param request
* @param response
*/
@RequestMapping(valuˉ\_(ツ)_/ˉe='/getCookie.jsonp',method=RequestMethod.GET)
public void getCookie(HttpServletRequest reques??t, HttpServletResponse response){
try {
response.setCharacterEncoding("UTF-8");
//獲取cookie
Cookie[] cookies = request.getCookies();
//數據
Ma(′;ω;`)p<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("cookies", cookies);
resultMap.put("message", "跨域獲取cookie(′;д;`)成功");
String result = JsonUtils.objectToJson(resultMap);
//前端傳過(guò)來(lái)的回調函數名稱(chēng)
String callback = request.getParameter("callback");
//用回調函數名稱(chēng)包裹返回數據,這樣,返回數據就(jiu)作為回調函數的參數傳回去了
result = callback + "(" + result + ")";
response.getWriter().??write(result);
} catch (Exce(╥_╥)ption e) {
e.printStackTrace();
}
}
//1.jsonp跨域設置cookie
function setCookieCrossJsonp() {
$.ajax({
type:"get",
url:"http://czt.ming.com/industry/api/publishForeign/setCookie.js(′?_?`)onp",
async:true,
data:{ },
dataType: "jsonp", //返回類(lèi)型為jsonp,實(shí)現跨域
jsonp:"callback", //jsonp和jsonpCallBack相當于在url后添加一個(gè)參數:?callback=back
jsonpCallback(╯°□°)╯:"back", //設定回調函數的名字,傳到后臺,進(jìn)行包裝,不設定自動(dòng)生成
success: function(data) { //成功執行處理,對應后(′?ω?`)臺返回的b???ack(data)方法
console.log(data);
}
});
}
setCookieCrossJsonpヽ(′ー`)ノ(??);
//2.jsonp跨域獲取cookie
fu(′?ω?`)nction getCook(?_?;)ieCrossJsonp() {
$.ajax({
ty??pe:"get",
url:"http://czt.ming.com/industrヽ(′▽?zhuān)?/y/api??/publishForeign/getCookie.jsonp",
async:true,
data:{ },??
da???taType: "jsonp", //返回類(lèi)型為jsonp,實(shí)現跨域
jsonp:"callback", //jsonp和jsonpCallBack相當于在url后添加一個(gè)參數:?ヽ(′?`)ノcallback=back
jsonpCallback:"back1", //設定回調函數的名字,傳到后臺,進(jìn)行包裝,不設定自動(dòng)生成
succe(′_ゝ`)ss: function(da┐(′д`)┌ta) { //成功執行處理,對應后臺返回的back(??d(′?`*)ata)方法
console.log(data);
}
});
}
getCookieCrossJ??sonp();
(ヾ(′?`)?4)測試jsonp跨域請求獲取和創(chuàng )建cookie:
通過(guò)http://czt.casi??cloud.com/xxx/xxx訪(fǎng)問(wèn)頁(yè)面,js觸發(fā)jsonp跨域請求http://czt.ming.com/xxx/xxx/xxxx/getCookie.jsonp、http://czt.ming.com/xxx/xxx/xxxx/setCookie.jsonp,能夠正??缬蛟O置cookie和獲取cookie??;??
以上這篇ajax請求添加自定義header參(can)數代碼就是小編分享給大家的全部?jì)热萘?,希望??給大家一個(gè)參考,也希望大家多多支持腳本之家。
來(lái)源:腳本之家
鏈接:https://www.jb51.net/article/199388.htm
