当跨域时,js ajax 请求出现options请求

Posted 侧耳倾听的世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当跨域时,js ajax 请求出现options请求相关的知识,希望对你有一定的参考价值。

上面有文章说过http的options. 查了很久.试了很多版本的jQuery,下面这段代码在同事的机子上测试是没有问题的.正常 的请求, 一在我机子上面就会出现option,网上说先向服务器预检等.为什么在同事的机子上面是正常的呢..最后查出原因.是我在html页面还引入了一个全局的js文件,里面有一个全局配置crossDomain:false,于是我在ajax请求是加上crossDomain:true,就OK了..让其请求是跨域请求.

postdata:function(t,i){

var i=i||0;
var ad_type = 1;
var ad_pos = ‘‘;
var click_close = $(".pop_body").attr("click_close"); // 点击就关闭
if(t == ‘show‘) ad_type = 1;
if(t == ‘close‘) ad_type = 3;
if(t == ‘clicks‘)  {
ad_type = 2;
ad_pos = this.winOptions.type[‘clicks‘][i];
if(click_close) $.ydapp.client.hidePopWindow();
}
if(ad_type == 3) {
$.ydapp.client.hidePopWindow();
}
var closeTips = function(){
if(ad_type == 3) $.ydapp.client.closePopWindow();
if(ad_type == 2 && click_close) $.ydapp.client.closePopWindow();
}
var post_data = {‘preview‘ : this.winOptions.is_preview,
‘oem_id‘ : this.winOptions.oem_id,
‘client_id‘ : this.winOptions.client_id,
‘client_ver‘ : this.winOptions.client_ver,
‘tips_id‘ : this.winOptions.tips_id,
‘tips_name‘ : this.winOptions.tips_name,
‘ad_type‘ : ad_type,
‘ad_pos‘ : ad_pos
};


$.ajax({
type : ‘POST‘,
url : $.ydapp.config.SITE_URL+"/ntips/ajaxcount",
data : post_data,
dataType :‘jsonp‘,
crossDomain:true,
jsonp: ‘jsoncallback‘,
success : closeTips,
error : closeTips
});

},

 
另外,需注意,jsonp跨域请求是GET方式,不能上传文件。 







































以上是关于当跨域时,js ajax 请求出现options请求的主要内容,如果未能解决你的问题,请参考以下文章

HTTP Options 跨域时发送两个请求是怎么回事?

HTTP跨域时为何要发送options请求

`ajax`跨域时`session`丢失了!!!

axiso 请求 添加登入权限问题

http跨域时的options请求

怎样避免跨域发出OPTIONS请求?