0

こんにちは、私は spring3.0 restful webservice に取り組んでいます。同じサーバー (つまり、weblogic サーバー) からメソッドを呼び出しているときにメソッドを呼び出すことができますが、別のサーバーから同じメソッドを消費\ヒットしたい場合(つまり、私のjbossサーバー)、weblogicサーバーにある残りのメソッドにヒットしていません。

以下のコードで、このコードがweblogic jspページに記述されていて、それを呼び出すと正しい値が返され、同じ値をWebページに表示できます.しかし、同じコードを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; 

    }

}
4

1 に答える 1

0

他の (jboss) サーバーに「Access-Control-Allow-Origin」が指定されていても、「同じオリジン ポリシー」に違反するため、ブラウザーはこれを許可しない場合があります。

サービスが json を返す場合、json または javascript は「same origin policy」の影響を受けないため、「dojo.io.script」などのスクリプト ユーティリティを使用することで、これを簡単に行うことができます。

json でない場合は、「dojo.io.iframe」以外に選択肢がない可能性があります。お役に立てれば ...

編集: あなたのサービスは JSON を返すようですが、 dojo.io.script を試してみましたか? またはJSフレームワークにある他の同様のユーティリティ。

于 2013-01-17T15:35:18.747 に答える