使用Jetty / Firefox的CORS Ajax帖子

时间:2013-01-19 18:52:44

标签: javascript jquery cross-domain cors

我正在尝试使用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)

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

2 个答案:

答案 0 :(得分:0)

通过添加

中指定的响应头来解决这个问题

jQuery CORS request not working when sending Range request

答案 1 :(得分:0)

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

$.support.cors = true;