1. 程式人生 > >JSONP處理跨域請求 --org.json

JSONP處理跨域請求 --org.json

1, Ajax請求

(同一ip, 當前應用為8086埠, 要訪問的後端介面為8088埠, 出現跨域請求問題)

 $.ajax({
              url: 'http://10.171.1.34:8088/ssm_test/login.do',
              type: 'GET',
              dataType: 'JSONP',
              jsonp:"callback",  //Jquery生成驗證引數的名稱
              data: {
                  name: _this.username,
                  pwd: _this.password
              },
              success: function (res) {
                console.log("登陸成功");
              },
              error: function (err) {
                console.log("返回出錯了");
              }
        });

2, 對應後端介面處理

將返回資料封裝成callback函式格式, 結果資料result 需求進行JSON格式處理, 這裡需要用到org.json的jar包

//登陸
	@RequestMapping("/login.do")
	@ResponseBody
	public Object guess(String name, String pwd, @RequestParam("callback") String callback){
		boolean b = 
				vueLoginService.login(name, pwd);
		System.out.println("b: " + b);
		JSONObject result = new JSONObject();
		if(b){
			result.put("state", "200");
	        result.put("data", "登陸成功");
	        return callback+"(" + result.toString() + ")";
		} else {
			result.put("state", "999");
	        result.put("data", "登陸失敗");
	        return callback+"(" + result.toString() + ")";
		}
	}

json-20180813.jar: 

連結:https://pan.baidu.com/s/1YmMnUkCdMDFx9npbwIdNrA 
提取碼:ukoo