加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

ajax哀求添加自界说header参数代码

发布时间:2020-12-17 11:37:36 所属栏目:运营 来源:网络整理
导读:这篇文章首要先容了ajax哀求添加自界说header参数代码,具有很好的参考代价,但愿对各人有所辅佐。一路跟从小编过来看看吧
副问题[/!--empirenews.page--]

  短视频,自媒体,达人种草一站处事

这篇文章首要先容了ajax哀求添加自界说header参数代码,具有很好的参考代价,但愿对各人有所辅佐。一路跟从小编过来看看吧

我就空话不多说了,各人照旧直接看代码吧~

$.ajax({
type: "post",
url:"http://127.0.0.1:4564/bsky-app/template/testPost",
contentType: "application/json;charset=utf-8",
data :JSON.stringify({"bodyName":"sdfsdf","date":"2017-11-28 07:34:01","price": 10.5,"tbId": 1}),
dataType: "json",
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("token", "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxOD.....");
},
success: function (data) {
alert(data);
},error:function(error){
console.log(error);
}
});

beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("token", "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxOD.....");
},

个中,token是处事端自界说的header参数

增补常识: ajax哀求携带cookie和自界说哀求头header(跨域和同域)

ajax哀求携带cookie、自界说header总结:

错误:

1.ajax哀求时是不会自动带上cookie的,要是想让他带上的话,必需配置withCredential为true。

正确:

1.ajax同域哀求下,ajax会自动带上同源的cookie;

2.ajax同域哀求下,ajax添加自界说哀求头(或原装)header,前端、靠山不必要增进任何设置,

而且不会由于增进自界说哀求头header,而引起预搜查哀求(options);

3.ajax跨域哀求下,假如不必要携带cookie、哀求头header,只必要在靠山设置响应参数即可;

靠山参数:

(1).Access-Control-Allow-Origin:配置应承跨域的设置, 相应头指定了该相应的资源是否被应承与给定的origin共享;

4.ajax跨域哀求下,ajax不会自动携带同源的cookie,必要通过前端设置响应参数才可以跨域携带同源cookie,靠山设置响应参数才可以跨域返回同源cookie;

前端参数:

withCredentials: true(发送Ajax时,Request header中会带上Cookie信息)

靠山参数:

(1).Access-Control-Allow-Origin:配置应承跨域的设置, 相应头指定了该相应的资源是否被应承与给定的origin共享;

出格声名:设置了Access-Control-Allow-Credentials:true则不能把Access-Control-Allow-Origin配置为通配符*;

(2).Access-Control-Allow-Credentials:相应头暗示是否可以将对哀求的相应袒露给页面(cookie)。返回true则可以,其他值均不行以。

5.ajax哀求任何时辰都不会带上差异源的cookie(Cookie遵循同源计策);

6.ajax跨域哀求下,ajax添加自界说可能原装的哀求头,哀求会发送两次,第一次预搜查哀求,第二次正常哀求,具体描写:

post(或GET)跨域哀求时,分为简朴哀求和伟大哀求,跨域携带自界说可能原装哀求头头时是伟大哀求。

伟大哀求会先发送一个method 为option的哀求,目标是摸索处事器是否接管提倡的哀求. 假如处事器说可以,再举办post(或GET)哀求。

对付java靠山web应用,跨域必要添加一个过滤器(过滤器详见下面案例代码),这个过滤器做的事就是,加了几个http header在返回中,

Access-Control-Allow-Origin 我能接管的跨域哀求来历,设置主机名

Access-Control-Allow-Headers 暗示能接管的http头部,别忘了插手你本身发现缔造的头部

Access-Control-Allow-Methods 暗示能接管的http mothed ,横竖就那几种,全写上也无妨,猥琐点就只写 post, options

假如是OPTION返回空,配置返回码为202,202暗示通过。

必要前端设置响应参数才可以跨域携带哀求头,靠山设置响应参数举办跨域携带哀求头;

前端参数:

crossDomain:true(发送Ajax时,Request header 中会包括跨域的特殊信息,但不会含cookie(浸染不明,不会影响哀求头的携带))

靠山参数(设置预搜查过滤器):

(1)Access-Control-Allow-Origin:配置应承跨域的设置, 相应头指定了该相应的资源是否被应承与给定的origin共享;

(2)Access-Control-Allow-Credentials:相应头暗示是否可以将对哀求的相应袒露给页面(cookie)。返回true则可以,其他值均不行以;

(3)Access-Control-Allow-Headers:用于预检哀求中,列出了将会在正式哀求的 Access-Control-Request-Headers 字段中呈现的首部信息。(自界说哀求头);

(4)Access-Control-Allow-Methods:在对预检哀求的应答中明晰了客户端所要会见的资源应承行使的要领或要领列表;

亲测小结论:

1.ajax跨域哀求下,靠山不设置跨域Access-Control-Allow-Origin,同样可以或许执行靠山要领,可是无法执行ajax的success的要领,节制台报跨域错误;

2.ajax跨域哀求下,前端设置withCredentials: false,同样可以或许执行靠山要领,可是无法携带同源cookie,靠山无法获取;

3.ajax跨域哀求下,前端设置withCredentials: true,后端没有设置Access-Control-Allow-Credentials:true,同样可以或许执行靠山要领,并可以或许天生cookie并返回赏识器,可是无法执行ajax的success的要领,节制台报跨域错误;

4.ajax跨域哀求下,前端设置withCredentials: false或不设置withCredentials,后端设置Access-Control-Allow-Credentials:true可能false,同样可以或许执行靠山要领,并可以或许天生cookie并返回赏识器,可是无法携带同源cookie,可以或许执行ajax的success的要领;

5.Cookie携带只区分域名,不区分端口;

6.jsonp可以携带cookie,但只能携带所属域名的cookie(同源计策);

7.jsonp可以跨域天生cookie,流程如下:跨域哀求之后,在处事器端天生cookie,并在赏识器端记录响应的cookie;

8.静态资源同样会携带cookie(js和图片等),可是假如是和当前页面差异域只是在network中不表现cookie选项,可是靠山可以或许获取到对应cookie;

9.ajax同域哀求会自动带上同源的cookie,不会带上差异源的cookie;

10.这是MDN对withCredentials的表明: MDN-withCredentials ,我接着表明一下同源。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读