如何在ajax中重现成功的curl调用

时间:2014-03-01 08:06:01

标签: ajax json charles-proxy

在Charles代理中,我已经捕获了使用curl时发出的成功请求 - 它返回了一些json。我已经整天尝试将其变成ajax电话但却失败了 - 想知道是否有人可以重新审视它?我通过标题向提供此json的服务发送令牌

{
"category": [{
    "id": 1,
    "name": "aaa",
    "description": "anything..."
}, {
    "id": 2,
    "name": "ccc",
    "description": "desc 1111..."
}, {
    "id": 3,
    "name": "ddd",
    "description": "desc..."
}]
}

查尔斯转发用curl做出的好请求

    GET /api/v1/category HTTP/1.1
    User-Agent  curl/7.30.0
    Host    myurl.com
    Accept  */*
    Authorization   Token token=6ff1fed470ec2ddaf8b3af9584619902

原始信息

    URL http://myurl.com/api/v1/category
    Status  Complete
    Response Code   200 OK 
    Protocol    HTTP/1.1
    Method  GET
    Kept Alive  No
    Content-Type    application/json; charset=utf-8
    Client Address  /127.0.0.1
    Remote Address  myurl.com/23.23.121.64

我的尝试

$.ajax({
beforeSend: function (xhr) { xhr.setRequestHeader ('Authorization', 'Token 6ff1fed470ec2ddaf8b3af9584619902') },
type: "GET",
url: "http://myurl.com/api/v1/category",
dataType: "json"
}).done(function( msg ) {
console.log( msg );

}).fail(function(jqXHR, textStatus, errorThrown) {
console.log( "Request failed: " + textStatus );
console.log( errorThrown );
});

提前感谢!

1 个答案:

答案 0 :(得分:0)

您尚未针对您的尝试发布诊断信息,因此我只想从您的代码中猜测。

  1. 您发送

    Authorization: Token 6ff1fed470ec2ddaf8b3af9584619902

    来自XHR的

    ,但是

    Authorization: Token token=6ff1fed470ec2ddaf8b3af9584619902

    来自curl-note token=

  2. 您必须确保http://myurl.com/api/v1/category支持cross-origin resource sharing或与执行该JavaScript代码的页面位于同一位置(域)。

  3. 如果这些没有帮助,请发布您收到的任何错误消息。