带有Node.js和jQuery的CORS

带有Node.js和jQuery的CORS,jquery,node.js,cors,Jquery,Node.js,Cors,我需要向不提供javascript的节点服务器发送一些数据。我运行服务器,但从未看到发送的选项,Chrome拒绝接受来自不同域的ajax。] 我的服务器: var http = require('http'); var router = require('router'); var routing = router(); var server = http.createServer(routing); routing.options('*', function(request, response

我需要向不提供javascript的节点服务器发送一些数据。我运行服务器,但从未看到发送的选项,Chrome拒绝接受来自不同域的ajax。]

我的服务器:

var http = require('http');
var router = require('router');
var routing = router();
var server = http.createServer(routing);
routing.options('*', function(request, response){
  console.log("OPTIONS BEING SENT");
  var origin = (request.headers.origin || "*");
  response.writeHead("204",
                     "No Content",
                     { "access-control-allow-origin": origin,
                     "access-control-allow-methods": "GET, POST, PUT, DELETE, OPTIONS",
                     "access-control-allow-headers": "content-type, accept",
                     "access-control-max-age": 10,
                     "content-length": 0
                   });
  response.end();
});

server.listen(7738);
我的js发送是
jqxhr=$.get('localhost:7738/post/trackEvent/'+eventName)但我从未看到发送选项。如果我使用另一个工具通过选项请求访问服务器,它将按预期工作

更新:

使用选项请求点击服务器以
http://localhost:7738/post/trackEvent/MoneyInTheBank
返回以下内容:

HTTP/1.1 204 No Content
Content-Length: 0
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS
Access-Control-Allow-Headers: Content-Type, Accept
Access-Control-Max-Age: 10
Connection: close

只有飞行前请求发送选项标头,而且由于ajax请求是一个具有简单标头的简单方法,所以不会向服务器发送任何选项


有关详细信息,请检查和

您的问题似乎是由于JavaScript相同的域问题造成的。请参见,我将方法更改为看跌期权,但它仍然抱怨
选项localhost:7738/post/trackEvent/MoneyInTheBank资源加载失败
。如果我可以用选项ping这个地址,并且它的行为符合要求,为什么会出现这种情况呢。Chrome只是不喜欢源文件。