如何从javascript向webservice发送GET请求

如何从javascript向webservice发送GET请求,javascript,html,Javascript,Html,我有一个html表单,它的按钮上有一个onClick属性,然后调用一个javascript函数: function submitForm () { // Get Session ID var sessionId = document.getElementById("session-id").value; // Get Description var description = document.getElementById("description").val

我有一个html表单,它的按钮上有一个onClick属性,然后调用一个javascript函数:

function submitForm () {

    // Get Session ID
    var sessionId = document.getElementById("session-id").value;

    // Get Description
    var description = document.getElementById("description").value;

    // Call WebService ??   

}
在此阶段,我必须在此URL调用Web服务:

localhost:8080/PatientRefund/WebService?urnId=93&batchDescription=My%20Description
您可以将'93'替换为'sessionId',将'My%20Description'替换为'batchDescription'。此外,请求应该是GET请求


谁能给我指出正确的方向吗?我不是在找你帮我写代码。。。谢谢大家:)

使用jQuery ajax,您的代码如下:

function submitForm () {
    var sessionId = document.getElementById("session-id").value;
    var description = document.getElementById("description").value;

    $.ajax({
        url: 'http://localhost:8080/PatientRefund/WebService',
        type: 'GET',
        data: {urnId: sessionId, batchDescription: description}
    }).done(function(response) {
        console.log(response);
        // do something with your response
    });
}
如果希望客户端在提交后下载文件,则不应使用ajax请求。您应该动态创建表单并提交它。示例代码:

function submitForm() {
    var sessionId = document.getElementById("session-id").value;
    var description = document.getElementById("description").value;
    var newForm = jQuery('<form>', {
        'action': 'http://localhost:8080/PatientRefund/WebService',
        'method': 'GET',
        'target': '_top'
    }).append(jQuery('<input>', {
        'name': 'urnId',
        'value': sessionId,
        'type': 'hidden'
    })).append(jQuery('<input>', {
        'name': 'batchDescription',
        'value': description,
        'type': 'hidden'
    }));
    newForm.submit();
    return false;
}
函数submitForm(){
var sessionId=document.getElementById(“会话id”).value;
var description=document.getElementById(“description”).value;
var newForm=jQuery(“”{
'行动':'http://localhost:8080/PatientRefund/WebService',
'方法':'获取',
“目标”:“顶部”
}).append(jQuery(“”{
“名称”:“urnId”,
“值”:sessionId,
“类型”:“隐藏”
})).append(jQuery(“”{
'name':'batchDescription',
“值”:描述,
“类型”:“隐藏”
}));
newForm.submit();
返回false;
}

您需要AJAX。非常容易做,例如使用jQuery的
$.ajax()
甚至
$.get()
shortcut.perfect这就是我想要的,只是想看看这些天所有的酷孩子都是如何做的,因为我不是javascript开发人员。你可以使用我得到的响应,实际上是一个应该下载到客户端的文件。使用上面的代码,服务会成功命中,但文件不会下载。我如何在javascript中处理这个问题?哦,很抱歉,如果你想下载一个文件,你不应该使用ajax。您应该创建一个表单并将其发布到WebService端点。您做得很好!但不起作用,我出现了以下错误:“以windows-1252编码提交的表单无法对所有Unicode字符进行编码,因此用户输入可能会损坏。为避免此问题,应更改页面,以便通过将页面本身的编码更改为UTF-8或在form元素上指定accept charset=UTF-8,以UTF-8编码提交表单。“好吧,这样就消除了错误,但web服务甚至不再受到攻击。但是,你已经回答了我最初的问题,所以你应该得到你的分数。我会设法弄清楚的。谢谢你的帮助:)