JAvaドメイン間問題の処理(ajaxはjsonpを使用)

2117 ワード

例:会社の1つのAプロジェクトはPHPが书いたので、BプロジェクトはJAVAが书いたので、今Aプロジェクトのページの部分のデータはBプロジェクトのインタフェースを呼び出す必要があって、Aプロジェクトのページはajaxが要求を送るので、この时ドメインをまたぐ问题が现れて、ドメインをまたぐ原因は、Aプロジェクトのポート番号は80で、Bプロジェクトのポート番号は8080です.
ドメイン間とは、IP、プロトコル、ポート番号の3つが異なるとドメイン間で発生します.
プロトコルの例を示します.
https://192.168.0.25:8080/javaZnyw
http://192.168.0.25:8080/javaZnyw  
この2つのIPは、ポート番号は同じですが、プロトコルは異なり、1つのhttpプロトコル、1つのhttpプロトコルは、ドメインをまたいでいます.
IPは例を挙げる:
AプロジェクトのIPは192.168.0.27     
BプロジェクトのIPは192.168.0.25
では、この2つのプロジェクトのIPは同じで、「0」のセグメントです.
次の場合:
AプロジェクトIPは192.168.1.27
BプロジェクトのIPは192.168.0.27
では、この2つのプロジェクトのIPは異なり、ドメイン間で発生します.
ポート番号の例:
http://192.168.0.27:80/phpZnyw    呼び出したい    http://192.168.0.25:800/javaZnyw   IPはプロトコルと同じですが、ポート番号が異なり、ドメイン間で
私はドメインをまたぐ方法を解決します(親測可)
フロントエンドはajax送信要求を採用し、コードは以下の通りである.
                $.ajax({
                            url: 'http://192.168.0.25:8080/znywLock/assets/queryAssetsList',
                            type: 'post',
                            async: false,
                            data: {'username':'xiaoming','password':'123456'},
                            jsonp: "callback",
                            dataType: 'jsonp',
                            success: function(data) {
                                success(data.data)
                            },
                            error: function(data) {
                                $.messager.alert('  ', '      !', 'warning')
                            }
                        })

次にjava側受信パラメータ処理
@RequestMapping(value="/queryAssetsList",produces = "application/json; charset=utf-8")
	@ResponseBody
      public String queryAssetsList(String username,String password,String callback){ //   callback    ajax jsonp   
                JSONObject jsonObject=assetsService.queryAssetsList(username,password);
		String str=jsonObject.toString();
		return callback+"("+str+")"; //   callback    ajax jsonp   

	}