将XML发布到泽西休息网络服务

时间:2016-03-09 19:33:18

标签: javascript java rest

我正在尝试将消息从facelet(.xhtml)页面发布到REST Web服务(Jersey)。我认为如果服务器有,可以在javascript / jQuery中进行,比如说

<?php header('Access-Control-Allow-Origin: *'); ?>

然而,服务器似乎没有这样的属性,我不知道在配置中修改它的位置。

我试过了;

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "example.com",
  "method": "POST",
  "headers": {
    "content-type": "application/xml",
    "cache-control": "no-cache"
  },
"data": 
  "<consultation>\n    \n\
    <consultationDescription>"+description+"</consultationDescription>\n    \n\
    <customerName>"+fullName+"</customerName>\n    \n\
    <customerPhone>"+phonenumber+"</customerPhone>\n    \n\
    <endDateAndTime>"+endDateAndTime+"</endDateAndTime>\n    \n\
    <startDateAndTime>"+startDateAndTime+"</startDateAndTime>\n\n\
  </consultation>",
  contentType: "application/xml", 

$.ajax(settings).done(function (response) {
  console.log(response);
});

但我只得到原始错误。

那么我应该尝试在服务器上找到修改源的位置,还是应该采用不同的方法?也许一个&lt; h:形式&gt;并通过像#{sendXML.someMethod}等javabean发布,但我不知道在哪里可以找到它的语法。我已经坚持这个问题一段时间了,找不到一个好的答案。你们有什么想法吗?

示例:http://postimg.org/image/5k2thyl3p/

点击绿色单元格 - &gt;写信息(提交) - &gt;在服务器上预订时间。更新视图。

1 个答案:

答案 0 :(得分:0)

所以我按照本指南想出了如何做到这一点:http://www.mkyong.com/java/how-to-send-http-request-getpost-in-java/

private final String USER_AGENT = "Mozilla/5.0";

// HTTP POST request
private void sendPost() throws Exception {
try  {
    String url = "http://myurl";
    URL obj = new URL(url);
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();

    //add reuqest header
    con.setRequestMethod("POST");
    con.setRequestProperty("Accept-Language", "UTF-8");
    con.setRequestProperty("content-type", "application/xml");

    String urlParameters = "<myXML></myXML>";

    // Send post request
    con.setDoOutput(true);
    DataOutputStream wr = new DataOutputStream(con.getOutputStream());
    wr.writeBytes(urlParameters);
    wr.flush();
    wr.close();
catch (Exception e) {
    e.printStackTrace();
}
}

由于跨域错误导致javascript无效,因此在Javabean中完成工作就可以了。

我通过将Http s URLConnection修改为HttpURLConnection并添加了con.setRequestProperty(“content-type”,“application / xml”)来更改代码示例。

我还用try / catch包裹了这个声明。

我可能从一开始就很难说出我的问题。但通过在bean中进行操作,它对我有用。