CORS的两种请求方式

CORS是跨源资源分享,解决跨域的方法。
JSONP只能发送get请求,CORS允许各种类型的请求。

跨域:协议,域名,端口三者存在不同。

请求有两种:
1.简单请求
头信息之中,增加一个Origin字段!Origin字段用来说明,本次请求来自哪个源(协议 + 域名 + 端口)
请求方式为get post head
http头信息不超出一下字段:Accept、Accept-Language 、 Content-Language、 Last-Event-ID、 Content-Type

2特殊请求
对服务器有特殊要求的请求,比如请求方法是PUT或DELETE,或者Content-Type字段的类型是application/json。

特殊请求会在正式通信之前增加一次HTTP查询请求,浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest请求,否则就报错。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你在使用 jQuery 的 AJAX 发起 POST 请求时遇到了 CORS 错误,可以尝试以下几种方法来解决问题: 1. 在服务端添加 CORS 头信息 在服务端的响应头中添加以下信息: ``` Access-Control-Allow-Origin: * Access-Control-Allow-Methods: POST Access-Control-Allow-Headers: Content-Type ``` 其中,`Access-Control-Allow-Origin` 表示允许跨域的源,`*` 表示任意来源都可以跨域访问;`Access-Control-Allow-Methods` 表示允许跨域请求的方法,这里只需要设置 `POST` 即可;`Access-Control-Allow-Headers` 表示允许跨域请求携带的请求头,这里只需要设置 `Content-Type` 即可。 2. 使用 JSONP 如果服务端无法添加 CORS 头信息,可以考虑使用 JSONP 跨域请求。在 jQuery 中使用 JSONP 的方式如下: ```javascript $.ajax({ url: 'http://example.com/api', type: 'POST', dataType: 'jsonp', jsonp: 'callback', data: postData, success: function(data) { console.log(data); }, error: function(xhr, status, error) { console.log(error); } }); ``` 其中,`dataType` 设置为 `jsonp`,`jsonp` 设置为 `callback`,这样 jQuery 就会自动将 POST 请求转为 GET 请求,并在 URL 中添加一个 `callback` 参数,服务端返回的数据会被包裹在 `callback` 函数中,然后在客户端调用该函数即可。 3. 使用代理方式 如果以上两种方法都无法解决问题,可以考虑使用代理方式。在客户端发起请求时,先将请求发送到自己的服务器,然后由自己的服务器再发起请求到目标服务器,最后将目标服务器的响应返回给客户端。这样就不会遇到跨域问题了。 以上是一些解决 jq ajax CORS 错误 post 请求的方法,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值