2014-02-21 143 views
1

我的客户端有一个Web服务API,我必须首先连接到一个有效载荷的用户名和密码才能获得SecurityToken,然后使用此SecurityToken作为为所有以下API调用发送的标头的一部分,所以我是想知道如何使用JQuery $ .ajax方法来做到这一点。任何例子都非常感谢。JQuery网络服务授权

以下是我在验证到目前为止已经试过,但它始终是在响应返回了错误,所以我不知道这是否是正确的:

$(document).ready(function(){ 
    $.ajax 
     ({ 
     type: "POST", 
     url: "http://portal.domainname.com/auth", 
     dataType: 'json', 
     async: false, 
     data: '{"Login : [email protected]", "Password : test"}', 
     success: function(){ 
      alert('Success'); 
     }, 
     error: function(xhr, error){ 
      console.debug(xhr); console.debug(error); 
     } 
    }); 

}); 

问题与上面的代码是,它总是返回200个OK状态,但令牌从来没有响应

+0

你尝试过什么?那里有大量的'.ajax()'教程。这看起来很直接 – tymeJV

+0

@tymeJV对不起在原始问题中添加它。我刚刚在上面添加了它。但我总是得到200 OK状态,没有任何反应,换句话说,令牌永远不会返回 – MChan

回答

1

我想你想发送data为对象,而不是返回的字符串,因为字符串implies它是一个查询字符串:

data: JSON.stringify({ Login: "[email protected]", Password : "test" }),另外,如果你得到一个200,那么它意味着响应成功了(你应该使用success回调函数),但是你所有的逻辑代替了error回调函数。你可能想:

success: function(data) { 
    // Do something with data 
}, 
+0

感谢您的帮助,我试过了您的代码,但我得到了SyntaxError:意外的令牌','有什么想法?谢谢 – MChan

+0

@MChan是的,我复制并粘贴了你有的字符串,但它错误地格式化了键值对。 :P现在修复它。 – Igor

+0

感谢您更新答案,它现在不会给出错误:)但我仍然无法获取令牌。我的客户添加的一件事是,登录信息必须以JSON格式发送。因此,例如当您以Google Chrome为例进行测试时,您必须点击“行”选项卡,粘贴登录数据和json并发送,而不是将参数发送为参数。所以我想知道如何确保数据在我的代码中发布为json(考虑到我已经将数据类型设置为json)?谢谢 – MChan

1

对我说,您发送的JSON是不是有效的JSON:

data: '{"Login : [email protected]", "Password : test"}', 

应该

data: '{"Login" : "[email protected]", "Password" : "test"}',