dsfasdfsda234234
2013-03-20 00:27
浏览 843
已采纳

无法使用jQuery发送CORS POST请求

I'm trying to send a POST request to a separate subdomain via ajax. The preflight request (OPTIONS) is successful, but the following XMLHttpRequest request returns the "Origin http://app.example.com is not allowed by Access-Control-Allow-Origin."

The client side (app.example.com) code looks like this:

var settings = {
    url: 'http://api.example.com/auth',
    type: 'POST',
    contentType: 'application/json',
    crossDomain: true,
    headers: {"X-Requested-With": "XMLHttpRequest"},
    username: data.username,
    success: callback,
    error: callback
};

$.ajax(settings);

The server side code (api.example.com) looks like this:

$this->output->set_header('Content-Type: application/json; charset=utf-8');
$this->output->set_header('Access-Control-Allow-Origin: http://app.example.com');
$this->output->set_header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, HEAD, OPTIONS');
$this->output->set_header('Access-Control-Allow-Headers: X-Requested-With, Origin, X-Csrftoken, Content-Type, Accept');
$this->output->set_header('Access-Control-Allow-Credentials: true');

The OPTIONS request returns a 200 status. I'm hoping someone is able to tell me what I'm missing. Thanks!

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题