$.ajax 跨域 options


遇到一个很怪异的问题, 跨域请求的时候, 使用 jquery的ajax()方法发送 post, 会在 post 请求前发送一个 OPTIONS 请求, 但是通过 直接通过 post() 方法请求就不会发送 OPTIONS 请求?有什么办法可以在 ajax 跨域请求时, 前端不发送 OPTIONS请求, 或者不处理 OPTIONS 请求吗?

附录:

其中 ajax() 方法设置了这几个参数:

        dataType: "json",
        async: true,
        data: {},
        type: "POST",
        cache: false,
        xhrFields: {
            withCredentials: true
        },
        crossDomain: true,
        timeout: 20000,

post() 方法什么参数也没设置.


setting the content type to anything other than application/x-www-form-urlencoded, multipart/form-data, or text/plain will trigger the browser to send a preflight OPTIONS request to the server

这是 jQuery 的 $.ajax() 文件中的,你看对你有没得帮助。

另外,jQuery 的 $.post 定义如下

  • jQuery.post( url [, data ] [, success ] [, dataType ] )

  • jQuery.post( [settings ] )

你把 dataType 设置成 JSON(如果你的服务端返回是 JSON 的话),或者在 settings 里把 dataType 设置为 JSON,再看看效果呢。


这是浏览器的一个安全策略,不是 jqyery 的问题
基本知识,可以在这了解一下
https://developer.mozilla.org...


跨域是浏览器独有的一种机制,OPTIONS 请求是浏览器在遇到跨域请求的情况下发起的一次类似授权的请求,用于确定服务器端是否允许此次跨域行为。非前端代码控制。


为什么你使用$.ajax$.post不一样,可以检查你的代码或者看请求头协议是不是有差别,$.ajax有一个setting

查看了一下jquery的文档,发现了一个可能导致你这个问题的原因。还是可以参考MDN上讲解的预请求,非默认允许的情况下是会产生一次预请求的,要和服务端有默契才行。

For cross-domain requests, setting the content type to anything other than application/x-www-form-urlencoded, multipart/form-data, or text/plain will trigger the browser to send a preflight OPTIONS request to the server.

希望以上回答可以帮你找到问题并且解决问题。


更新:

按照你给的参数设置不会发起OPTIONS预请求的,只是因为withCredentials: true需要服务端需要设置一个Access-Control-Allow-Credentials: true

什么时候发起预请求?预请求


前几天写过一篇文章,或者可以解决你的问题:https://.com/a/11...



相关阅读:
mysql 的IFNULL失效
webpack在安装的时候出现问题
使用websocket上传视频文件后无法播放
作用域链的问题?
angular.js高级程序设计书本开头配置环境出错,谁能给解答一下
样式和类样式区别
关于this在浏览器中的指向
在node.js里面可以使用window对象的方法吗
angularjs如何将字符串类型的时间格式化呢
bundle-loader解析import异于ES6 module
video标签怎么控制播放内容的宽高?
IE兼容 React
弹出提示窗口JS怎么设置弹出一次,假设多弹出也要把前者取消,让后者弹出一次?
前端如何掌握必须的http知识?
在pfsense中启动barnyard2失败
scrapy怎么设置返回码不是200换代理
为什么有的公司要求DBA禁止使用between?
Laravel 如何获取路由名称?
前后端分离中碰到跨域问题大家是怎么解决的?
阮一峰老师《ECMAScript 6入门》第一节中的疑问



快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 幼师给学生的毕业留言语录 久伴芝兰嗅其芳 战痘记作文1100字 校园的美丽作文100字 学校开的实习证明 太空生活趣事多(转载) 未来的小汽车作文 步入初二,我多了一份行动作文 六年级期末考后反思作文:努力才会有优势 勇敢挑战生活的考验——读《桃花心木》有感800字 雨意绵绵 心中的奥运英雄作文1000字 瞧,我们这一组_关于描写小组成员的小学生作文600字 钢琴之路 环保志愿者宣誓誓词 担不起的人情 可爱的小熊作文200字 初一课后习作:我爱我家600字作文作文800字 七夕之叹! 向儿子“要债”的母亲 英语角策划书模板 张爱玲散文:烬余录 网奴 坏心肠的魔法师作文600字 竹林之缘 国旗下讲话稿:学生网络安全知识 关于青春的家长寄语 对于恋爱中的男女一定要了解的事情 县民宗局2014年工作总结及2015年工作计划 读红楼梦有感 800字 母亲,请用你的爱给我作嫁妆 一笺残殇,凄美了整片落花 海边拾趣 群工站人员深入基层访贫问苦 华下逢杨侍御 儿童励志故事《保持不变》 搞笑对话笑死人不偿命 不容错过的四大创业励志电影 妇联系统参与流动人口管理服务工作总结 我和小动物作文 初三班主任工作总结——课堂落实,重视方法指导 真好作文 李白的七言诗 检察官面试自我介绍演讲稿 范文 故乡的牵挂 女人励志的短语 小兔还桃作文300字 寞月作文100字 元旦100字作文 令我开心的一天

Copyright © 2016 phpStudy |