当前位置: 首页 > 知识库问答 >
问题:

jQuery CORS内容类型选项

能钟展
2023-03-14
$.ajax({
  url: "http://some-other-domain/my-path",
  type: "POST",
  contentType: "application/json",
  dataType: "json",
  data: JSON.stringify({
    key: 1,
    key2: 2
  }),
  statusCode: {
    200: function(data) {
    }
  },
  xhrFields: {
    withCredentials: true
  },
  crossDomain: true
});

以下是标题:

响应标头:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Pragma: No-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 03:00:00 EET
Set-Cookie: JSESSIONID=BB9D6783E58FB0F2ADE1924A2F0CBA52; Path=/
Content-Type: text/html;charset=UTF-8
Content-Length: 6233
Date: Fri, 07 Sep 2012 14:41:13 GMT

请求标题:

OPTIONS /my-path HTTP/1.1
Host: MY-HOME-NAME
User-Agent: MY_USER_AGEMT
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Origin: HERE-GOES-DOMAIN
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Pragma: no-cache
Cache-Control: no-cache

CORS工作得很好,所有所需的头都是由服务器发送的,但如果它是由选项类型发送的,就不是了。是jQuery问题吗?

jQuery-1.8.1

共有1个答案

双志强
2023-03-14

如果您无法控制远程服务器,那么您需要请求它们支持CORS预飞行,或者尝试一些其他选项,如JSON-P。

Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST
Access-Control-Allow-Headers: Content-Type

响应应该是HTTP 200。access-control-allog-methods响应标头可以回显access-control-request-method的值,也可以是get、POST、PUT、delete以支持所有方法。access-control-allog-headers响应标头应回显access-control-request-headers请求标头中的值。

一旦浏览器接收到这些头,它就会发出实际的请求。您可以在这里了解更多关于CORS飞行前请求的信息:

http://www.html5rocks.com/en/tutorials/cors/

 类似资料:
  • 问题内容: 我在使用带有自定义Content-type的jQuery CORS发送AJAX正文请求时遇到问题。这是我的代码: 我需要将Content-type设置为“ application / json”,因为它需要服务器端。但是jQuery并非以POST形式发送请求,而是以OPTIONS形式发送请求。 这是标题: 响应标题: 请求标头: CORS运作良好,所有必需的标头均由服务器发送,但如果按

  • 我试图在一个新项目中运行一些java文件。所以我做了一个项目,把文件放在里面,我试着运行主文件,这样我的游戏就开始了。 null 我很确定它一定有效,因为我几个小时前在学校运行过它。我怎么让它工作?提前感谢!

  • 问题内容: 我当前正在使用Java 7,Maven,Spring MVC和Eclipse上的Eclipselink JPA编写Web服务,以访问连接到内部网络的温度/湿度传感器的值。使用curl连接到传感器并检索值没有问题,但是当我尝试使用URLConnection通过java连接时,出现错误。 我的代码: 错误: 不幸的是,我无法控制响应,因此也无法控制设置的标头。此请求返回的唯一标头是状态-2

  • 要允许您传播关于已生成消息的内容类型的信息,默认情况下,Spring Cloud Stream附加contentType标头到出站消息。对于不直接支持头文件的中间件,Spring Cloud Stream提供了自己的自动将邮件包裹在自己的信封中的机制。对于支持头文件的中间件,Spring Cloud Stream应用程序可以从非Spring Cloud Stream应用程序接收具有给定内容类型的消

  • Django 包含一个contenttypes 应用,它可以追踪安装在你的Django 项目里的所有应用,并提供一个高层次的、通用的接口用于与你的模型进行交互。 概述 Contenttypes 的核心应用是ContentType 模型,存在于 django.contrib.contenttypes.models.ContentType。ContentType 的实例表示并存储你的项目当中安装的应用

  • 我试图模仿我的浏览器行为在一个多部分/表单数据POST请求使用org.apache.http.entity.mime.MultipartEntityBuilder 我的浏览器只发送内容配置,但不发送内容类型或内容传输编码头。我尝试使用MultipartEntityBuilder。addPart()和addTextBody()但默认情况下都会添加这些标题: 我想要什么(我的chrome浏览器的功能)