【问题标题】:calling restful service from different server从不同的服务器调用restful服务
【发布时间】:2013-01-17 10:57:16
【问题描述】:

大家好,我正在开发 spring3.0 restful webservice。当我从同一服务器(即我的 weblogic 服务器)调用方法时,我可以调用我的方法。但是如果我想使用\打相同的方法从另一台服务器(即我的 jboss 服务器)然后它没有命中我在 weblogic 服务器上的 rest 方法。

在下面的代码中,如果我在 weblogic jsp 页面中编写此代码并调用它,则返回正确的值,我可以在我的网页上显示相同的值。但是如果我将相同的代码复制到 JBOSS 服务器中的 jsp(我访问我的休息服务的不同项目)然后它没有达到我的方法。 ---------------------------------------

$.ajax({
    url: "http://test.abc.org:7001/SpringRestService/restful/products/ALL/ALL/ALL/ALL.json",
    type: "GET",
    processdata: true,
    dataType: "json",
    contentType: "application/json;",
    beforeSend: function () { },
    headers : 
    {
        "Content-Type"  : "application/json",
        "Accept" : "application/json",
        "Access-Control-Allow-Origin":"http://its-ims002.neahq.nearoot.org:7001/"
    },
    success: function (data) 
    {             
            bindEvent.loadGridData(data);
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) 
    {
        try 
        {
            alert(JSON.stringify(XMLHttpRequest) + "\n" + textStatus + "\n" + errorThrown);
        }
        catch (ex) { alert("Exception occured.. "); }
        finally { }
    }
});

下面是我保存在 weblogic 服务器中的 java 代码,我必须使用我的 ajax 调用从 jboss 服务器中访问。

---------------------------------



@Controller
public class HelloWorldController1 {

@RequestMapping(value = "/products/{userName}/{year}/{status}/{stateId}", method = RequestMethod.GET,consumes="application/text")
    public ModelAndView getTextFromURL(@PathVariable("userName") String userName, @PathVariable("year") String year,
            @PathVariable("status") String status, @PathVariable("stateId") String stateId) {
        List<Abc> list= new ArrayList<Abc>();

        list= service.products(userName, year, status, stateId);

        ProductList productList = new ProductList (list);   

        ModelAndView mav = new ModelAndView();
        mav.setViewName("index1");
        mav.addObject("list", productList );

        return mav; 

    }

}

【问题讨论】:

    标签: spring restful-url


    【解决方案1】:

    即使您为其他(jboss)服务器指定了“Access-Control-Allow-Origin”,浏览器也可能不允许这样做,因为这违反了“同源策略”

    如果您的服务返回 json,您可以通过使用诸如“dojo.io.script”之类的脚本实用程序轻松做到这一点,因为 json 或 javascript 不受“同源策略”的影响。

    如果它不是 json,那么除了“dojo.io.iframe”之外,如果适合您,可能没有其他选项。希望这会有所帮助...

    编辑:我看到您的服务返回 JSON,您是否尝试过使用 dojo.io.script ?或您的 JS 框架具有的任何其他类似实用程序。

    【讨论】:

      猜你喜欢
      • 2018-12-29
      • 2011-11-02
      • 2015-12-15
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多