我正在使用Java Restfull Web服务,该服务在postgres SQL中转储数据。
Java WebService函数完美运行。功能如下

    @Path("/db")
public class DBOperaions {

    @POST
    @Path("/insert")
    @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
    public String InsertDBData(@PathParam("hname") String hname,
            @PathParam("hdates") String hdates,
            @PathParam("hremark") String hremark,
            @PathParam("isDelete") boolean isDelete,
            @PathParam("created_date") String created_date,
            @PathParam("updated_date") String updated_date) {

  //Data Dumping Code
    }
    }


现在我正在尝试从Jquery Ajax访问此功能,如下所示

var obj = { hname: $("#txtRuleName").val(), hdates: $("#txtRuleDates").val(), hremark: $("#txtRuleRemark").val(), isDelete: false, created_date: 'CURRENT_TIMESTAMP', updated_date: 'CURRENT_TIMESTAMP' };
    $.ajax({
        type: "POST",
        contentType: "application/json",
        dataType: "json",
        xhrFields: {
            withCredentials: true
        },
        url: "http://localhost:8015/PostGresTestDB/rest/db/insert",
        data: JSON.stringify(obj),
        success: function (data, textStatus, jqXHR) {
            alert('Data Inserted successfully...');
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert('generateReportFromMR:Error in processing!');
            //alert(jqXHR);
        }
    });


Webservice使用http://localhost:8015/PostGresTestDB/rest/db/insert在tomcat服务器上运行
和网页在http://localhost:42229/index.html上运行

我收到以下错误

XMLHttpRequest无法加载http://localhost:8015/PostGresTestDB/rest/db/insert。所请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问源'http://localhost:49927'。

我尝试了CORS,但没有成功。

谁能告诉我我到底想做什么?

最佳答案

您可以尝试使用“ jsonp”作为请求的数据类型。通过使用它,您需要在javascript中指定一个回调函数,其中将包含解析json响应的实现。 $ .ajax函数的'jsonpCallback'选项中设置的值必须与将在JavaScript中实现的单独的回调函数同名。无需在$ .ajax的'success'属性中编写用于解析的代码,而是在回调函数中执行此操作。您还需要在Java源代码中修改数据转储代码,方法是在实际编写响应之前,首先用与您在“ jsonpCallback”中指定的回调函数同名的字符串包装JSON响应。

关于java - XMLHttpRequest错误所请求的资源上不存在“Access-Control-Allow-Origin” header ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28335071/

10-09 05:28