使用jQuery的REST Web服务客户端

时间:2016-01-27 13:49:26

标签: jquery web-services rest

我发布了我的第一个问题,因为我遇到了这个问题,试图用jQuery调用REST Web服务。 这是我的代码:

<script>
    $("#selListSub").change(function() {
        var listid = $("#selListSub option:selected").val();
        $.ajax({
            type : "GET",
            beforeSend : function() {
                headers = {
                    'Authorization' : 'myKey'
                };
            },
            url : "https://api.createsend.com/api/v3.1/lists/" + listid + "/customfields.json",
            success : function(data) {
                alert("success");               
            }
        });
    })
</script>

我检索在我的&lt;中选择的选项选择&gt;然后用它来打电话给ws。

我寻找并尝试了我在本网站上找到的所有解决方案,但没有任何效果。我已经使用Postman上的Auth标头测试了网址,它运行正常。

Web服务应该返回一个json对象,但我想要实现的第一件事是达到成功函数...

我不知道它是否可以提供帮助,但这相当于我想要在java / jersey中做的事情(这有效):

String idList = request.getParameter("selListSub");
Client client = ClientBuilder.newClient();
WebTarget resourceTarget = client.target("https://api.createsend.com/api/v3.1/lists/" + idList + "/customfields.json");
String jsonInString = resourceTarget.request(MediaType.APPLICATION_JSON_TYPE).header("Authorization", "myKey").get(String.class);

如果有人看到我的错误,请告诉我; )

的问候。

1 个答案:

答案 0 :(得分:0)

您可能不想更改beforeSend功能,如下所示

<script>
    $("#selListSub").change(function() {
        var listid = $("#selListSub option:selected").val();
        $.ajax({
            type : "GET",
            beforeSend : function(xhr) {
                xhr.setRequestHeader("Authorization", 'myKey');
            },
            url : "https://api.createsend.com/api/v3.1/lists/" + listid + "/customfields.json",
            success : function(data) {
                alert("success");               
            }
        });
    })
</script>

<强>更新
您可能还想在beforeSend函数中执行以下操作

  xhr.setRequestHeader("Accept", "application/json");
  xhr.setRequestHeader("Content-Type", "application/json");