1. 程式人生 > 其它 >Ajax的Jsonp跨域請求技術

Ajax的Jsonp跨域請求技術

Ajax的跨域請求

跨域獲取使用者寫入資料

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="http://localhost:8060/JSON_war_exploded/jquery.min.js"></script>
		<script>
			function funmove(){
			            //id的屬性用$("#id")獲取
			            //判斷她為空的話,給span一個文字發生
			            if (null== $("#userid").val()||''==$("#userid").val()){
			                 $("#spanid").text("使用者名稱不能為空")
			                return
			            }
			            //這裡是使用者看到後進行輸入,再次執行清空sqan的操作;就不執行if了
			            $("#spanid").text("")
			            //傳送非同步請求
			            $.ajax(
			                {
			                    type:"GET",//method的方式
			                    url:"http://localhost:8060/JSON_war_exploded/unameCheckServlet.do?",// 請求的後臺服務的路徑
			                    data:{username:$("#userid").val()},// 提交的引數
								dataType:"jsonp",
								jsonp:"aaa",
			                    success:function (msg) {// 響應成功執行的函式
			                        $("#spanid").text(msg)
			                    }
			                }
			            )
			        }
		</script>
	</head>
	<body>
		<form method="get" action="unameCheckServlet.do">
		    賬號:<input id="userid" name="username" type="text" onblur="funmove()">
		    <span id="spanid" style="color: red"></span><br/>
		    密碼:<input name="password" type="password"><br/>
		    <input type="submit" value="提交">
		</form>
	</body>
</html>

package com.msb;

import com.sun.net.httpserver.HttpServer;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/unameCheckServlet.do")
public class servlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String parameter = req.getParameter("username");
        System.out.println(parameter);//獲取使用者輸入的資料
        String aaa = req.getParameter("aaa");//jsonp的跨域技術;aaa必須與定義的屬性名一致
        String info= "";
        if (parameter==null||parameter==""){
            info="使用者名稱不能為空";
        }else if ("msb".equals(parameter)){
            info="使用者名稱已經被用";
        }
        resp.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html;charset=UTF-8");
        resp.getWriter().println(aaa+"('"+info+"')");
    }
}