jsonp 크로스 필드 요청 예시

인터넷 에서 jsonp 에 관 한 자 료 를 많이 보 았 는데 이 컴퓨터 가 실 행 된 후에 실현 되 지 못 하 는 것 을 발견 했다.어떤 것 은 잘못 되 었 고 어떤 것 은 모호 하 게 말 하 며 자신의 상황 을 연결 시 켜 실행 가능 한 예 를 만 들 었 다.
선언:
ajax 요청 주소:http://192.168.1.102:8080/carop/jsonp
서버 에서 되 돌아 올 jsonp 문자열:jsonpCallback({"name":"유덕화","전화":"17688888888"})
jsonp 쓰기,쓰기 에 있어 서 자바 script 함수 의 실행 으로 이해 할 수 있 습 니 다.예 를 들 어 alert(hello World)는 hello World 의 창 을 팝 업 합 니 다.예 를 들 어 alert({"name":"유덕화"})는[object Object]의 창 을 팝 업 합 니 다.(이 매개 변 수 는 문자열 이 아 닌 속성 이 있 는 대상 입 니 다)
그러면 이 예제 의 jsonp 에 서 는 jsonpCallback 을 함수 명 으로 이해 할 수 있 습 니 다.{"name":"유덕화","전화":"17688888888"}이 대상 은 이 함수 가 실 행 될 때 전달 할 매개 변수 입 니 다.
클 라 이언 트:

$.ajax({
       type: "get",
       async:false,
url: "http://192.168.1.102:8080/carop/jsonp",
       dataType: "jsonp",
jsonpCallback:"jsonpCallback",       
       success: function(data){
       alert(data.name+"
"+data.tel); } });
다른 ajax 방법,예 를 들 어 getjson 도 가능 합 니 다.쓰기 에 차이 가 있 습 니 다.여 기 는 한 가지 방법 만 사용 합 니 다.
설명:jsonpCallback:"jsonpCallback",이전 ajax 매개 변 수 는 실행 할 함수,뒤의"jsonpCallback"을 표시 합 니 다.이것 은 서버 가 jsonp 를 되 돌려 주 는 javascript 함수 이름 입 니 다.(인터넷 에 관련 자료 가 있 습 니 다.이 매개 변 수 는 jsonp Callback 이 아니 라 jsonp Callback 이 라 고 쓰 여 있 습 니 다.실제 테스트 를 통 해 jsonp Callback,jquery 버 전 1.8,테스트 브 라 우 저 는 불 여우 와 엣 지 입 니 다)
서버
servlet 컨트롤 러 층 이 jsonp 로 직접 돌아 가기;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/jsonp")
public class jsonp extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
 throws ServletException, IOException {
 resp.setCharacterEncoding("UTF-8");
 //System.out.println("  jsonp");
 resp.setContentType("text/json;charset=utf-8");
 String json="{\"name\":\"   \",\"tel\":\"17688888888\"}";
 String jsonp="jsonpCallback("+json+")";
 PrintWriter pw=resp.getWriter();
 System.out.println(jsonp);
 pw.print(jsonp);
}
@Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  throws ServletException, IOException {
 // TODO Auto-generated method stub
 doGet(req, resp);
 }
}
이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기