gpt4 book ai didi

jquery - 使用 JQuery Ajax 调用调用 Rest Web 服务,Web 服务返回 JSON 字符串

转载 作者:行者123 更新时间:2023-12-01 02:13:58 25 4
gpt4 key购买 nike

我创建了一个 Rest Web 服务:

package org.jboss.samples.rs.webservices;


import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.GET;
import javax.ws.rs.Path;



@Path("/MyRESTApplication")
public class HelloWorldResource {


@GET()
@Produces("application/json")
@Path("/dealInfo/{dealId}")
public String sayHello(@PathParam("dealId") int dealId) {
System.out.println("dealid......"+dealId);
switch(dealId) {
case 1 :System.out.println("employee id.....");
return "{'name':'George Koch', 'age':58}";
case 2:
return "{'name':'Peter Norton', 'age':50}";
default:
return "{'name':'unknown', 'age':-1}";
} // end of switch

}
}

当我转到 Internet Explorer 并在地址栏中输入以下内容时:

http://localhost:8080/nagarro-0.0.1-SNAPSHOT/MyRESTApplication/dealInfo/2

它给了我:

{'name':'Peter Norton', 'age':50}

但是当我在 JQuery 方法中使用 ajax 调用来调用它时。例如

$.ajax({  
type: "GET",
url: "http://localhost:8080/nagarro-0.0.1-SNAPSHOT/MyRESTApplication/dealInfo/2",
data: "",
success: function(resp){
// we have the response
alert("Server said123:\n '" + resp + "'");
},
error: function(e){
alert('Error121212: ' + e);
}
});

我在此通话中遇到错误。

enter image description here

当我在 IE 中使用 F12 进行调试时,我也得到了关注

"Invalid JSON: {\'name\':\'Peter Norton\', \'age\':50}"

有人可以告诉我通话中可能出现什么问题吗?

最佳答案

您的服务和输出是正确的。

问题是同源策略 http://en.wikipedia.org/wiki/Same_origin_policy

Ajax 不允许访问内部层服务。例如,在www.example.com/index.html中,您无法访问www.example.com/service/book?id=1。因为您将上下文路径从 www.example.com 更改为 www.example.com/service/book。出于安全考虑,这是不允许的,但我们有一个解决方案

以前,我遇到过同样的问题,我用下面的代码解决了它。我认为它可以帮助你。关键点是dataType: 'json'

    function testService()                {                    $.ajax(                    {                        dataType: 'json',                        headers: {                            Accept:"application/json",                            "Access-Control-Allow-Origin": "*"                        },                        type:'GET',                        url:'http://localhost:8080/service/book/search/1',                        success: function(data)                        {                            document.writeln("Book id : " + data.id);                            document.writeln("Book title : " + data.name);                            document.writeln("Description : " + data.description);                        },                        error: function(data)                        {                            alert("error");                        }                    });                }

关于jquery - 使用 JQuery Ajax 调用调用 Rest Web 服务,Web 服务返回 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9481073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com