使用jquery AJAX将文件上传到REST

时间:2013-09-12 13:39:54

标签: jquery rest jersey resteasy

我想使用jquery ajax上传文件。我有一个REST应用程序。此REST应用程序使用基于令牌的身份验证。成功登录后,它将在数据库表中创建一个令牌。登录后,每个请求都会传递此令牌。我有一个过滤器,它检查登录后的每个请求是否有令牌,如果请求包含令牌,那么它将根据数据库条目进行验证。

我想要的是使用Jquery AJAX调用来调用REST URL,这应该在头文件中添加auth密钥。

以下是我的代码无效,内部过滤器失败。

<!doctype html>
<head>
  <script src="jquery-1.9.1.js"></script>
</head>
<body>
 <div id="progress">
 <input type="file" id="file">
        <input type=button name="btn" value="Upload" id="fileUpload">
</div>
<br/>
<script>
$(document).on("click", "#fileUpload", function(event) {
    console.log($('#file').val());
    var filename = $("#file").val();

    jQuery.ajax({
        type : 'POST',
        beforeSend: function(xhr){xhr.setRequestHeader('pubKey', 'abcd');},
        url : "http://localhost:8080/restapp/somename/getContacts",
        dataType : "json",
        contentType : "application/json;charset=utf-8",
        success: function() { alert('Success!' ); },
        error: function() { alert('Hushhhhhhhhhhhh!' ); }
    });
});
</script>
</body>
</html>

请告诉我如何在标题内添加数据/密钥。我在几个博客上搜索过但没有任何工作,过滤器每次都会发出请求。

1 个答案:

答案 0 :(得分:0)

得到了答案。我正在尝试使用独立的html代码来访问REST模块。我的REST模块需要“身份验证”密钥作为请求标头属性。如果没有服务器,我们无法在REST模块中设置和获取header属性。要设置请求标头参数,我们必须在服务器上运行html,以便服务器为我们编写请求标头。