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送信要求を採用し、コードは以下の通りである.
次にjava側受信パラメータ処理
ドメイン間とは、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
}