【问题标题】:CORS Ajax post with Jetty/Firefox使用 Jetty/Firefox 发布 CORS Ajax
【发布时间】:2013-01-03 06:27:44
【问题描述】:

我正在尝试使用 CORS 使用 jQuery 进行跨域 POST,但是在发送(并响应)OPTIONS 请求之后,POST 不会发生。我的请求/响应过滤器如下所示。还显示了我的 jQuery 邮政编码。看起来响应具有正确的 CORS 响应标头,所以我不确定为什么这不起作用。

var params = {};
params.data = myPostData;
params.headers = {
  'x-pingother' : 'pingpong'
};
$.ajax(params);

请求标头

OPTIONS /my/service/url HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:17.0) Gecko/20100101 Firefox/17.0
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: http://localhost:9876
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type,x-pingother
Pragma: no-cache
Cache-Control: no-cache

响应标头:

HTTP/1.1 200 OK
Access-Control-Allow-Origin: http://localhost:9876
Access-Control-Allow-Methods: POST,GET,OPTIONS
Access-Control-Allow-Headers: x-pingother
Content-Length: 703
Content-Type: application/vnd.sun.wadl+xml
Allow: OPTIONS,POST
Last-Modified: Sat, 19 Jan 2013 13:46:51 EST
Server: Jetty(6.1.25)

我正在从本地服务器 (JSTestDriver) 运行自动化测试,该服务器连接到在不同端口上运行的 Web 服务器。 Web 服务器在 8080 上运行,发出请求的页面在 9876 上运行。

【问题讨论】:

  • 您是否尝试过仅发送 XHR POST,跳过 jQuery 和 OPTIONS 请求?据我所知,这确实看起来应该有效。我猜帖子没有发生,但也没有关于尝试跨域请求的警告?
  • 我认为这是一个 jquery 问题,但还不确定。当我远程控制内容类型时,我得到一个媒体不支持的错误,但尝试发布。

标签: javascript jquery cross-domain cors


【解决方案1】:

您是否尝试明确告诉 jQuery 启用 cors?

$.support.cors = true;

【讨论】:

    【解决方案2】:

    这已通过添加中指定的响应标头解决

    jQuery CORS request not working when sending Range request

    【讨论】:

      猜你喜欢
      • 2016-11-21
      • 2015-11-01
      • 2012-04-25
      • 2013-04-08
      • 2018-08-07
      • 2021-08-11
      • 2018-02-04
      • 1970-01-01
      • 2018-04-01
      相关资源
      最近更新 更多