当跨域时,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方式,不能上传文件。

时间: 2024-11-12 19:49:17

当跨域时,js ajax 请求出现options请求的相关文章

JavaScript之Ajax-7 Ajax跨域请求(Ajax跨域概述、Ajax跨域实现)

一.Ajax跨域概述 同源策略 - 同源策略(Same origin policy)是一种约定,它是浏览器的核心也最最基本的核心.如果少了同源策略,则浏览器的正常功能可能都会收到影响.可以说Web是构建在同源策略基础上的,浏览器只是针对同源策略的一种实现 - 它是由 Netscape 提出的一个著名的安全策略 - 现在所有支持 JavaScript 的浏览器都会使用这个策略 - 所谓同源策略是指,域名.协议.端口相同 域名概述 - 域名(Domain Name) 是由一串用点分隔的名字组成的In

【js跨域】js实现跨域访问的几种方式

这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被当作是不同的域. 下表给出了相对http://store.company.com/dir/page.html同源检测的结果: 要解决跨域的问题,我们可以使用以下几种方法: 一.通过jsonp跨域 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的.但是,在页面上引入不同

谷歌、火狐浏览器下实现JS跨域iframe高度自适应的完美解决方法,跨域调用JS不再是难题!

谷歌.火狐浏览器下实现JS跨域iframe高度自适应的解决方法 导读:今天开发的时候遇到个iframe自适应高度的问题,相信大家对这个不陌生,但是一般我们都是在同一个项目使用iframe嵌套页面,这个ifame高度自适应网上一搜一大把,今天要讲的如何在不同的网站下进行相互的调用跟在同一个网站下是一个效果:例如我在自己的项目里面Iframe  了第一博客的页面  http://www.diyibk.com/   当第一博客的页面高度变化了怎么通知父页面呢? 这个时候在谷歌下肯定是拿不到 ifram

解决浏览器跨域限制发送ajax请求

一.什么是浏览器跨域限制?本质是什么? 所谓浏览器跨域限制,其实是为了数据安全的考虑由Netscape提出来限制浏览器跨域访问数据的策略,这是一中约定,正式叫法为浏览器同源策略,目前已经在大多数浏览器中支持. 本质上,所谓浏览器同源策略即:不允许浏览器访问跨域的Cookie,ajax请求跨域接口等.也就是说,凡是访问与自己不在相同域的数据或接口时,浏览器都是不允许的. 最常见的例子:对于前后端完全分离的Web项目,前端页面通过rest接口访问数据时,会出现如下问题: 不允许发送POST请求:在发

WebService跨域配置、Ajax跨域请求、附开发过程源码

项目开发过程中需要和其他公司的数据对接,当时我们公司提供的是WebService,本地测试,都是好的,Ajax跨域请求,就报错,配置WebService过程中,花了不少功夫,入不少坑,不过最终问题还是解决啦~~~特意将完整开发步骤记录下来,以备下次勿犯,废话不多说,直接上源码! 第一步,右键,新建项,添加"web服务" 第二步:在webservice项目的web.config中添加如下配置,缺一不可: 1 <system.web> 2 <webServices>

http跨域时的options请求

1.背景 在前后端分离的项目中经常会遇到跨域请求的问题,如果没有进行跨域配置,会浏览器请求失败.我一般采用两种解决方案: 1.采用nginx进行转发,是前后端服务处于同一个域下面,从根本上避免跨域问题. 2.后端服务做一些配置,允许请求跨域,从而解决浏览器跨域问题.但是有时候浏览器还会发送OPTIONS请求. 2.跨域请求 跨域请求的介绍,以及处理方式可以看https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS,说的非常详细 简单说就是,浏览

Ajax跨域问题解决(Ajax JSONP)

因WEB安全原因,Ajax默认情况下是不能进行跨域请求的,遇到这种问题,自然难不倒可以改变世界的程序猿们,于是JSONP(JSON with Padding)被发明了,其就是对JSON的一种特殊,简单来说就是在原有的JSON数据上做了点手脚,从而达到可以让网页可以跨域请求.在现在互联网技术对"前后分离"大规模应用的时期,JSONP可谓意义重大啊. 假设我们原来的JSON数据为 {"hello":"你好","veryGood":

Flask提供json api跨域访问,ajax接收json数据

ajax在判断请求成功时会判断返回的数据是否为json,需要将response的content-type设置为application/json,数据为标准的json格式 jQuery版本 <script src="https://cdn.bootcss.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"></script> flask代码示例 @app.route('/test',methods=['GET','POST'

一次跨域请求出现 OPTIONS 请求的问题及解决方法

问题背景: 浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域 在前后端开发过程经常会遇到跨域问题. 前端这边是一个get请求,按理说也没啥,但是在请求的header里面要添加两个自定义的header. GET http://localhost:8080/api/v1/users Accept: */* Content-Type: application/json Authorization: token:21232f297a57a5a743894a0e4a801